- 1.volatile本質:是java虛擬機器(JVM)當前變數在工作記憶體中的值是不確定的,需要從主記憶體中讀取;synchronized則是鎖定當前的變數,只有當前執行緒可以訪問到該變數,其他的執行緒將會被阻塞。
- 2.volatile只能實現變數的修改可見性,並不能保證原子性;而synchronized則可以保證變數的修改可見性和原子性。
- 3.volatile只能使用在變數級別;synchronized則可以使用在變數、方法、和類級別的。
- 4.volatile不會造成執行緒的阻塞;synchronized可能會造成執行緒的阻塞。
synchronized和volatile的區別
相關文章
- volatile與synchronized的區別synchronized
- Volatile關鍵字&&DCL單例模式,volatile 和 synchronized 的區別單例模式synchronized
- Lock 和 synchronized的區別synchronized
- volatile和synchronized到底啥區別?多圖文講解告訴你synchronized
- 多執行緒的指令重排問題:as-if-serial語義,happens-before語義;volatile關鍵字,volatile和synchronized的區別執行緒APPsynchronized
- 全面解讀volatile和synchronize,輕鬆掌握Volatile與Synchronizedsynchronized
- 理解並正確使用synchronized和volatilesynchronized
- Synchronized 與 ReentrantLock 的區別synchronizedReentrantLock
- synchronized與ReentrantLock的區別synchronizedReentrantLock
- synchronized與Lock的區別synchronized
- Java synchronized與ReentrantLock的區別JavasynchronizedReentrantLock
- 多執行緒基礎之synchronized和volatile執行緒synchronized
- Lock、Synchronized鎖區別解析synchronized
- synchronized與Lock的區別與使用詳解synchronized
- Java併發2:JMM,volatile,synchronized,finalJavasynchronized
- 【面試普通人VS高手系列】lock和synchronized區別面試synchronized
- 打工人,從 JMM 透析 volatile 與 synchronized 原理synchronized
- Synchronized ,Volatile,Lock 三者不可告人的祕密synchronized
- 既然synchronized是"萬能"的,為什麼還需要volatile呢?synchronized
- ../和./和/的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- 從JMM透析volatile與synchronized原理,圖文並茂synchronized
- ||和??的區別
- /*和/**的區別
- 詳解鎖原理,synchronized、volatile+cas底層實現synchronized
- 10-Java中共享記憶體可見性以及synchronized和volatile關鍵字Java記憶體synchronized
- jquery $(this) 和this的區別jQuery
- JQuery this和$(this)的區別jQuery
- T和?的區別
- makefile =和:=的區別
- ++a和a++的區別
- ./ 和sh 的區別
- transient和synchronized的使用synchronized
- 面試:為了進阿里,重新翻閱了Volatile與Synchronized面試阿里synchronized
- 併發程式設計之ThreadLocal、Volatile、synchronized、Atomic關鍵字程式設計threadsynchronized
- 從CPU Cache出發徹底弄懂volatile/synchronized/cas機制synchronized
- java裡的鎖總結(synchronized隱式鎖、Lock顯式鎖、volatile、CAS)Javasynchronized