若每個線程中對靜態變量(類變量)、實例變量(對象變量)只有讀操作,而無寫操作,一般來說,這個全局變量是線程安全的;若有多個線程同時執行寫操作,一般都需要考慮線程同步,否則就可能影響線程安全。
1) 常量始終是線程安全的,因爲只存在讀操作。
2)局部變量是線程安全的。因爲每執行一個方法,都會在獨立的空間(棧幀)創建局部變量,它不是共享的資源。局部變量包括方法的參數變量和方法內變量。
3)每次調用方法前都新建一個實例是線程安全的,因爲不會訪問共享的資源。(多例)
4)成員變量(實例變量和類變量)會受到多線程影響
5)對於成員變量的操作,可以使用ThreadLocal來保證線程安全
另外類變量是所有對象共有,其中一個對象將它值改變,其他對象得到的就是改變後的結果;而對象變量則屬對象私有,某一個對象將其值改變,不影響其他對象。
springboot中controller單例模式多線程安全的簡單理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
分佈式系統各個節點狀態如何同步?淺談一下
毛发旺盛的程序员
2020-07-08 12:27:30
阿里年薪破百架構師推薦:鳥哥的Linux私房菜,搭配面試題,真香
毛发旺盛的程序员
2020-07-08 12:27:30
ZooKeeper 一致性協議 ZAB 原理,瞭解一下
毛发旺盛的程序员
2020-07-08 12:27:20
Spring中Transactional 失效的解決方案,讓我們一起探討一下
毛发旺盛的程序员
2020-07-08 12:27:20
太狠了,Spring全家桶筆記,一站式通關全攻略,已入職某廠漲薪18K
毛发旺盛的程序员
2020-07-08 12:27:20
面試準備季——MyBatis 面試專題(含答案)
毛发旺盛的程序员
2020-07-08 12:27:20
【JAVA】 try catch finally 中包含return的幾種情況,及返回結果
never疯
2020-07-08 12:23:53
劍指Offer_編程題_二叉搜索樹的後序遍歷序列
浮煌
2020-07-08 11:43:28
劍指Offer_編程題_樹的子結構
浮煌
2020-07-08 11:43:28
java的二分查找源碼分析
Cison chen
2020-07-08 11:07:50
android程序退出方案
shangmin1990
2020-07-08 11:03:08
啥時候用interface,啥時候用abstract類? 就一句話
_躬行_
2020-07-08 10:35:56
#idea#一個Java工程頻繁被idea修改jdk版本問題
码农丁丁
2020-07-08 10:28:41
Head First Servlet/JSP 學習筆記(1)
fan_7
2020-07-08 09:39:41