springboot中controller單例模式多線程安全的簡單理解

若每個線程中對靜態變量(類變量)、實例變量(對象變量)只有讀操作,而無寫操作,一般來說,這個全局變量是線程安全的;若有多個線程同時執行寫操作,一般都需要考慮線程同步,否則就可能影響線程安全。
1) 常量始終是線程安全的,因爲只存在讀操作。 
2)局部變量是線程安全的。因爲每執行一個方法,都會在獨立的空間(棧幀)創建局部變量,它不是共享的資源。局部變量包括方法的參數變量和方法內變量。
3)每次調用方法前都新建一個實例是線程安全的,因爲不會訪問共享的資源。(多例)
4)成員變量(實例變量和類變量)會受到多線程影響
5)對於成員變量的操作,可以使用ThreadLocal來保證線程安全


另外類變量是所有對象共有,其中一個對象將它值改變,其他對象得到的就是改變後的結果;而對象變量則屬對象私有,某一個對象將其值改變,不影響其他對象。

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