首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 多線程同步:只在 set 方法加鎖是否足夠?

     編輯:程式設計疑難解答

Java 中若只有 set 方法加上 synchronized,而 get 方法沒有,能否保證執行緒安全?

分析

僅鎖定寫入操作可確保同一時刻只有一個執行緒修改共享資料,但讀取操作未加鎖可能讀到較弱一致性的資料。Java 記憶體模型保證讀取的是某個時刻的最新資料,但不保證後續不被其他執行緒修改。

為了提高並發效率,可僅對寫入加鎖,讀取操作接受較弱一致性,這也是 ConcurrentHashMap 等類別的設計思路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved