Synchronized和Volatile四個不同點:
1、粒度不同,前者鎖對象和類 ,后者針對變量
2、syn阻塞,volatile線程不阻塞
3、syn保證三大特性,volatile不保證原子性
4、syn編譯器優化,volatile不優化
要使 volatile 變量提供理想的線程安全,必須同時滿足下面兩個條件:
1、對變量的寫操作不依賴於當前值。
2、該變量沒有包含在具有其他變量的不變式中。
Synchronized和Volatile四個不同點:
1、粒度不同,前者鎖對象和類 ,后者針對變量
2、syn阻塞,volatile線程不阻塞
3、syn保證三大特性,volatile不保證原子性
4、syn編譯器優化,volatile不優化
要使 volatile 變量提供理想的線程安全,必須同時滿足下面兩個條件:
1、對變量的寫操作不依賴於當前值。
2、該變量沒有包含在具有其他變量的不變式中。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。