Java-線程安全問題
1.什麼是線程安全?
如果你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。如果每次運行結果和單線程運行的結果是一樣的,而且其他的變量的值也和預期的是一樣的,就是線程安全的。或者說:一個類或者程序所提供的接口對於線程來說是原子操作或者多個線程之間的切換不會導致該接口的執行結果存在二義性,也就是說我們不用考慮同步的問題。
線程安全問題都是由全局變量及靜態變量引起的。
若每個線程中對全局變量、靜態變量只有讀操作,而無寫操作,一般來說,這個全局變量是線程安全的;若有多個線程同時執行寫操作,一般都需要考慮線程同步,否則的話就可能影響線程安全。
2.如何簡單判斷是否存在線程安全問題
a:是否多線程環境
b:是否有共享數據
c:是否有多條語句操作共享數據
如果上述三個條件,在程序中都有存在,那就說明存在線程安全問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
mybatis開啓MapperScannerConfigurer導致properties不生效
原創
2024-02-07 13:55:41
Java字符串的一些理解
原創
2023-10-31 09:11:32
(二)java版spring boot 社交電子商務平臺-security簡單使用
原創
2023-10-10 11:05:06
(三)java版spring cloud+spring boot+redis多租戶社交電子商務平臺-Spring Cloud實戰隨機端口
原創
2023-10-10 11:05:04
如何使用 Java 反射?反射的用法及案例
原創
2023-10-10 02:23:57
最新美團面試集合(一面+二面+三面+重點技術面試題)附面試解析
原創
2023-10-10 01:43:49
Java程序員不想被裁員困擾,應該怎樣築基、發展才能越走越遠?
原創
2023-10-10 01:43:34
阿里巴巴Java開發手冊 梳理筆記 - finally 塊必須對資源對象、流對象進行關閉
原創
2023-08-02 10:29:06
java併發-CAS的理解
原創
2023-05-29 01:40:21
java併發-Timer類的使用和原理
原創
2023-03-28 01:52:22
java併發-ReadWriteLock代碼理解
原創
2023-03-28 01:52:20
java併發-synchronized關鍵字
原創
2023-03-28 01:52:18
java併發-AQS總結-原理
原創
2023-03-28 01:52:16
java併發-緩存一致性協議和內存屏障的思考和理解
原創
2023-03-28 01:52:14