volatitle深入解析

2021-08-15 22:42:23 字數 1001 閱讀 5577

今天來介紹一下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方法請...