volatile:翻譯過來是不穩定的。
volatile具有可見性,有序性,但是不具有原子性。所以在需要原子操作的時候,volatile就會讀髒資料。
被volatile修飾的變數在每一次呼叫的時候都會從記憶體中去讀取到當前暫存器中,如果有執行緒修改了它,也會實時的同步到記憶體中,並通知其它使用該變數的執行緒該變數已失效,再去記憶體中重新獲取。
很多時候會覺得volatile用不用好像沒什麼區別,其實大多數情況下是不需要用它的,
一般在多執行緒下初始化某個引數的時候需要其它執行緒可見情況下用到(這是我們需要了解的,其它運用場景一般都使用別的加鎖機制了。。)
關鍵詞volatile小議
乙個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去假設 這個變數的值了。精確地說就是,優化器在用到這個變數時必須每次都小心地重新讀取這個變 量的值 from memory 而不是使用儲存在暫存器裡的備份。下面是volatile變數的幾個例子 1 並行裝置的硬體暫存...
C 學習筆記 關鍵詞
1 friend友元 採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需要定義一些函式,這些函式不是類的一部分 注意友元函式不是類的一部分 但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該函式的友元函式...
C語言中volatile關鍵詞的用法
volatile指出變數是隨時可能變化的 定義為volatile的變數是說這個變數可能會被意想不到地改變,這樣,編譯器就不會去假設這個變數的的值了。精確得講就是優化器在用到這個變數時必須每次都小心地重新讀取這個變數的值,而不是使用儲存在暫存器裡的備份 volatile使用的地方 1 中斷服務程式中修...