內(nèi)存屏障和volatile內(nèi)存語(yǔ)義的實(shí)現(xiàn)
趁周末,把以前的書(shū)拿出來(lái),再翻一番,順便做個(gè)筆記:
內(nèi)存屏障:用來(lái)控制和規(guī)范cpu對(duì)內(nèi)存操作的順序的cpu指令。
內(nèi)存屏障列表:
1.loadload:確保“前者數(shù)據(jù)裝載”先于“后者裝載指令”;
2.storestore:確保“前者數(shù)據(jù)”先于“后者數(shù)據(jù)”刷入系統(tǒng)內(nèi)存,且,“前者刷入系統(tǒng)內(nèi)存的數(shù)據(jù)”對(duì)“后者是可見(jiàn)的”;
3.loadstore:確保“前者裝載數(shù)據(jù)”先于“后者刷新數(shù)據(jù)到系統(tǒng)內(nèi)存”;
4.storeload:確保“前者刷入系統(tǒng)內(nèi)存”的數(shù)據(jù)對(duì)“后者加載數(shù)據(jù)”是可見(jiàn);
volatile的內(nèi)存語(yǔ)義的(JVM)實(shí)現(xiàn)策略:
1.在每個(gè)volatile寫(xiě)操作前,會(huì)插入一個(gè)storeload屏障;
2.在每個(gè)volatile寫(xiě)操作后,會(huì)插入一個(gè)storeload屏障;
3.在每個(gè)volatile讀操作后,會(huì)插入一個(gè)loadstore屏障和loadload屏障。
其上為java并發(fā)編程方向的理論基礎(chǔ)知識(shí)。

浙公網(wǎng)安備 33010602011771號(hào)