今天來介紹一下volatitle
volatitle是乙個確保共享變數能夠被準確和一致地更新的關鍵字(保證可見性),只能對變數使用
在對有volatile修飾符修飾的共享變數進行寫操作時,彙編**回多一條lock字首的指令。該指令有如下兩個作用:
將當前快取行的資料回寫到記憶體中
使其他cpu裡快取了該記憶體位址的資料無效(快取一致性機制)
下面通過記憶體模型圖來繼續分析
首先先介紹幾種記憶體屏障的型別
屏障型別
解釋loadload barriers
確保load1資料的裝載先於load2及所有後續指令的裝載
storestore barriers
確保store1資料對其他處理器的可見(重新整理到記憶體)先於store2及所有後續儲存指令的儲存
loadstore barriers
確保load1資料裝載先於store2及所有後續的儲存指令重新整理到記憶體
storeload barriers
確保store1資料對其他處理器的可見先於load2及所有後續裝載指令的裝載
下面繼續分析一下volatile是如何防止指令重排序的
在每個volatile寫操作的前面插入乙個storestore屏障
在每個volatile寫操作的後面插入乙個storeload屏障
在每個volatile讀操作的後面插入乙個loadload屏障
在每個volatile讀操作的後面插入乙個loadstore屏障
我的眼中只有那浩瀚的星辰,即便那遙不可及
Activity Intent深入解析
學習android sdk有段時間了,對activity intent的學習與使用都比較了解。第一次完整的學習activity intent後,我就感覺這似乎與windows com技術有些似曾相識的感覺,寫了一篇將activity 與 com 做了比較,但是一直感覺意猶未盡,前幾天在程式設計師雜誌...
深入解析IOCP
1.介紹 1.1 高併發伺服器 1 要求大規模的連線 會話可能同時進行 2 列子 web 伺服器,郵件伺服器 1.2 執行緒池架構 1 每個連線分配乙個執行緒,將導致過多的執行緒。2 執行緒消耗記憶體,比如堆疊等等。2.執行緒模型 2.1 基於會話模型 1 每個執行緒服務於乙個客戶端,比如http ...
HTTP 深入解析
1.cookie 儲存在客戶端 cookie 的類別 cookie 的屬性 了解 cookie 的應用場景 同源http請求 攜帶cookie 原生ajax請求方式 xhr.withcredentials true 支援跨域傳送cookies xhr.send jquery的ajax的post方法請...