天天看點

Servlet線程安全性

問題:使用以下的代碼示範servlet的線程安全問題?

同時通路以上的代碼發現三次同時出現3,這就是線程的并發通路的問題。

解決方案就是:同步

給通路共享資源的代碼加鎖。

總結:

1.如果直接使用同步關鍵字,那麼會導緻servlet的運作效率嚴重的降低。

2.盡量避免使用servlet的成員變量。

3.如果避免不了那麼我們就需要使用線程安全的成員變量。

      ArrayList   

Vector    HashSet  

      如果需要不是線程安全的集合可以使用Collections進行線程安全的轉換

4.ServletContext、HttpSession需要使用的時候一定要使用同步。

5.在servlet中最好使用局部變量。