Java中的Volatile和synchronized的區別


Synchronized和Volatile四個不同點:

1、粒度不同,前者鎖對象和類 ,后者針對變量
2、syn阻塞,volatile線程不阻塞
3、syn保證三大特性,volatile不保證原子性
4、syn編譯器優化,volatile不優化
   要使 volatile 變量提供理想的線程安全,必須同時滿足下面兩個條件:
    1、對變量的寫操作不依賴於當前值。
    2、該變量沒有包含在具有其他變量的不變式中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM