Spring 併發線程安全性問題

基礎知識參考Spring 併發訪問的線程安全性問題

總結:Spring 容器中創建的bean對象都是單例模式(默認)、比如常用的註解:@Controller、@Service、@Dao等,也可以通過@Scope("prototype")在類的聲明中,來改成多實例,注意:在@Controller中如果是默認單例,即使@Service、@Dao是多實例的,你得到的也是單例的結果,但是我們一般不會設置成多實例,默認單實例好處:

一是我們不用每次創建Controller,二是減少了對象創建和垃圾收集的時間,三是提升服務器性能

但是在多線程併發環境下Controller默認單例模式是如何處理的呢?

首先多線程併發會遇到兩個問題是:多線程共享數據同步問題和數據因併發產生不一致問題

1、多線程共享數據同步問題 :

1)我們可以在Controller中定義synchronized快,在同一時間只有一個線程調用該方法,

2)可以通過Java/Spring 自帶的多線程異步編程

2、數據因併發產生不一致問題 :

1)可以通過Threadlocal解決

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