1. 程式人生 > >volatile關鍵字解釋

volatile關鍵字解釋

一旦一個共享變數(類的成員變數、類的靜態成員變數)被volatile修飾之後,那麼就具備了兩層語義:

1)保證了不同執行緒對這個變數進行操作時的可見性,即一個執行緒修改了某個變數的值,這新值對其他執行緒來說是立即可見的。

2)禁止進行指令重排序。

volatile只提供了保證訪問該變數時,每次都是從記憶體中讀取最新值,並不會使用暫存器快取該值——每次都會從記憶體中讀取。

而對該變數的修改,volatile並不提供原子性的保證。

由於及時更新,很可能導致另一執行緒訪問最新變數值,無法跳出迴圈的情況

多執行緒下計數器必須使用鎖保護。