volatile變數自身具有下列特性
可見性。對乙個volatile變數的讀,總是能看到(任意執行緒)對這個volatile變數最後的寫入。
原子性。對任意單個volatile變數的讀/寫具有原子性,單類似volatile++變數這種復合操作不具有原子性。
當寫乙個volatile變數時,jmm會把該執行緒對應的本地記憶體中的共享變數值重新整理到主記憶體。
當讀乙個volatile變數時,jmm會把該執行緒對應的本地記憶體置為無效。執行緒接下來將從主記憶體中讀取共享變數。
執行緒a寫乙個volatile變數,實質上是執行緒a向接下來將要讀這個volatile變數的某個執行緒發出了(某對共享變數所做出修改)訊息。
執行緒b讀乙個volatile變數,實質上是執行緒b接收了之前某個執行緒發出的(在寫這個volatile變數之前對共享變數所做修改)訊息。
執行緒a寫乙個volatile變數,隨後執行緒b讀這個volatile變數,這個過程實質上是執行緒a通過主記憶體向執行緒b發訊息。
讀書筆記 iOS 記憶體管理
cocoa的記憶體管理 retain,release和autorelease.每個物件都維護乙個保留計數器。物件被建立時,其保留計數器值為1 物件被保留時,保留計數器值加1 物件被釋放時,保留計數器值減1 當保留計數器值歸0時,物件被銷毀。在銷毀物件時,首先呼叫物件的dealloc方法,然後 其占用...
LKD 3rd 讀書筆記 開篇語
本著對讀者負責的態度,在第一次開始閱讀lkd時,並沒有計畫寫讀書筆記,因為我沒有信心在未讀完全書的情況下,把筆記寫好。即便現在,我已經乙個字乙個字的把lkd讀完,仍然有一些章節理解得不夠深入,對核心的理解仍然處於菜鳥階段。所以,我決定讀二遍,在對全書有了全面的了解後,第二次的閱讀旅程,能夠加深某些知...
Windows 記憶體結構體系(讀書筆記)
物理儲存器 頁交換檔案 虛擬位址空間 對映 虛擬位址空間 n定義 程式的記憶體位址空間。n 大小 在x86中,大小為4gb 在x64中,大小為16eb。n使用原則 1.使用virtualalloc預定記憶體位址空間,使用virtualfree釋放位址空間區域。2.當應用程式預定位址空間時,系統會確保...