volatile和synchronized的區別
1、關鍵字volatile是執行緒同步的輕量級實現,所以volatile效能肯定比synchronized要好,並且volatile只能修飾於變數,而synchronized可以修飾方法以及程式碼塊。
2、多執行緒訪問volatile不會發生阻塞,而synchronized會出現阻塞。
3、volatile能保證資料的可見性,但不能保證原子性;而synchronized可以保證原子性,也可以間接保證可見性,因為它將私有記憶體和公共記憶體中的資料做同步。
4、關鍵字volatile解決的是變數在多個執行緒之間的可見性,而synchronized關鍵字解決的是多個執行緒之間訪問資源的同步性。
相關文章
- synchronized和volatile的區別synchronized
- Java中volatile和synchronized的區別Javasynchronized
- volatile與synchronized的區別synchronized
- volatile和synchronized的區別與聯絡[轉]synchronized
- Volatile關鍵字&&DCL單例模式,volatile 和 synchronized 的區別單例模式synchronized
- Lock 和 synchronized的區別synchronized
- synchronized和volatile理解synchronized
- volatile和synchronized到底啥區別?多圖文講解告訴你synchronized
- JAVA 裡static 和volatile的區別Java
- Java中的volatile的作用和synchronized作用Javasynchronized
- synchronized與Lock的區別synchronized
- 理解並正確使用synchronized和volatilesynchronized
- synchronized函式和synchronized程式碼塊有什麼區別?synchronized函式
- 全面解讀volatile和synchronize,輕鬆掌握Volatile與Synchronizedsynchronized
- 多執行緒的指令重排問題:as-if-serial語義,happens-before語義;volatile關鍵字,volatile和synchronized的區別執行緒APPsynchronized
- synchronized與ReentrantLock的區別synchronizedReentrantLock
- Synchronized 與 ReentrantLock 的區別synchronizedReentrantLock
- 多執行緒基礎之synchronized和volatile執行緒synchronized
- Java synchronized與ReentrantLock的區別JavasynchronizedReentrantLock
- Lock、Synchronized鎖區別解析synchronized
- 記憶體可見性和原子性:Synchronized和Volatile的比較記憶體synchronized
- 【面試普通人VS高手系列】lock和synchronized區別面試synchronized
- synchronized與Lock的區別與使用詳解synchronized
- volatile變數與普通變數的區別變數
- Java併發2:JMM,volatile,synchronized,finalJavasynchronized
- 打工人,從 JMM 透析 volatile 與 synchronized 原理synchronized
- Synchronized ,Volatile,Lock 三者不可告人的祕密synchronized
- Java虛擬機器13:互斥同步、鎖優化及synchronized和volatileJava虛擬機優化synchronized
- ../和./和/的區別
- 既然synchronized是"萬能"的,為什麼還需要volatile呢?synchronized
- 和 的區別
- as 和 with的區別
- ||和??的區別
- /*和/**的區別
- 從JMM透析volatile與synchronized原理,圖文並茂synchronized
- Synchronized、lock、volatile、ThreadLocal、原子性總結、Conditionsynchronizedthread
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP