volatile 和 synchronized的区别
生活随笔
收集整理的這篇文章主要介紹了
volatile 和 synchronized的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
1.volatile本質是在告訴JVM當前變量在寄存器(工作內存)中的值是不確定的,需要從主存中讀取。synchronized則是鎖定當前變量,只有當前線程可以訪問該變量,其他線程被阻塞住。
2.volatile僅能使用在變量級別;synchronized則可以使用在變量、方法、和類級別。
3.volatile僅能實現變量的修改可見性,不能保證原子性;而synchronized則可以保證變量的修改可見性和原子性
4.volatile不會造成線程的阻塞;synchronized可能會造成線程的阻塞。
5.volatile標記的變量不會被編譯器優化;synchronized標記的變量可以被編譯器優化。
轉載于:https://my.oschina.net/134596/blog/1636884
總結
以上是生活随笔為你收集整理的volatile 和 synchronized的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在SAP CRM WebClient
- 下一篇: 08.Eclipse下Ndk开发(使用f