1. 程式人生 > >Java中volatile關鍵字淺析

Java中volatile關鍵字淺析

1.基本理解

a. 可見性:指多個執行緒之間對共享變數的可見性,一個執行緒修改狀態時別的執行緒是可見的(意思是一個執行緒改變了狀態,別的執行緒能夠立馬及時的看到)。用volatile修飾的變數,當一個執行緒改變了狀態時,其他執行緒會立馬放棄各自快取中的值,直接從主存中獲取最新值重新整理自己的快取。Java中可以使用volatile保證可見性。

b. volatile不能保證原子性但可以保證可見性,volatile能禁止指令重排序。synchronized既能保證原子性又能保證可見性,

參考 https://www.cnblogs.com/rocomp/p/4780532.html