Volatile筆記小記

2021-10-07 04:06:22 字數 333 閱讀 4141

valatile的作用

可見性到底是什麼?

如何保證可見性?

valatile關鍵字的作用就是保證執行緒之間的可見性。

所謂可見性,就是當我們多個執行緒訪問同乙個變數時,乙個執行緒修改了這個變數的值,其他執行緒能夠立即看得到修改後的值。

volatile修飾的變數,jmm將在寫操作後插入乙個寫屏障指令,在讀操作前插入乙個讀屏障指令,這就代表:

一旦有執行緒對變數寫入了新值,任何訪問這個變數的執行緒都會得到新的值。

在寫入前,也會保證所有之前發生的事情已經發生,並且更新過的資料值也是可見的。記憶體屏障會把之前寫入值都重新整理到快取,所以volatile可以保證可見性。

筆記 關於const和volatile

關於這方面的內容,我自己經驗不夠說得不夠清楚。但又想記錄下來,於是上網找了的提問。問題帖子 1.volatile volatile標識乙個變數意味著這個變數可能被非本程式的其他過程改變,例如某個訪問這一變數的某中斷程式。為變數加上這一標識可以禁止編譯器的優化,使程式正確地按設計者的意圖執行。例如下面...

(讀書筆記)volatile記憶體語義

volatile變數自身具有下列特性 可見性。對乙個volatile變數的讀,總是能看到 任意執行緒 對這個volatile變數最後的寫入。原子性。對任意單個volatile變數的讀 寫具有原子性,單類似volatile 變數這種復合操作不具有原子性。當寫乙個volatile變數時,jmm會把該執行...

volatile關鍵詞學習筆記

volatile 翻譯過來是不穩定的。volatile具有可見性,有序性,但是不具有原子性。所以在需要原子操作的時候,volatile就會讀髒資料。被volatile修飾的變數在每一次呼叫的時候都會從記憶體中去讀取到當前暫存器中,如果有執行緒修改了它,也會實時的同步到記憶體中,並通知其它使用該變數的...