synchronized和volatile的區別


  • 1.volatile本質:是java虛擬機(JVM)當前變量在工作內存中的值是不確定的,需要從主內存中讀取;synchronized則是鎖定當前的變量,只有當前線程可以訪問到該變量,其他的線程將會被阻塞。
  • 2.volatile只能實現變量的修改可見性,並不能保證原子性;而synchronized則可以保證變量的修改可見性和原子性。
  • 3.volatile只能使用在變量級別;synchronized則可以使用在變量、方法、和類級別的。
  • 4.volatile不會造成線程的阻塞;synchronized可能會造成線程的阻塞。


免責聲明!

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



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