JAVA筆記:SSM項目中一些線程安全問題

SpringMVC中的控制層的線程安全?

1)控制層對象默認是單例設計
2)存在多線程共享數據集
3)共享數據集上的操作是非原子操作

滿足以上三個條件時,SpringMVC就可能會出現線程不安全.

FAQ?

1)SimpleDateFormat對象是一個線程安全對象嗎?不是


2)SimpleDateFormat對象如何保證在SSM項目中是安全的.
2.1)每次使用都創建新的對象(一般在方法內部定義並創建)
2.2)多線程共享一個SimpleDateFormat對象,然後藉助synchronized關鍵字保證線程安全.
2.3)每個線程一個SimpleDateFormat對象,藉助ThreadLocal對象實現.

ThreadLocal說明:

ThreadLocal 類提供了這樣一種機制,能夠將某個對象綁定(set)到當前線程,也能構從當前線程獲取(get)某個對象,不需要了,還可以從當前線程移除(remove)這個對象.

FAQ?

1)JDBC項目中的Connection對象可以共享嗎?
1.1)不可以,會存在線程安全問題
1.2)如何保證線程安全呢?(藉助ThreadLocal實現每個線程一個Connection.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章