關(guān)于volatile的這句話 “volatile字段的每次讀行為都能看到其它線程最后一次對(duì)該字段的寫行為扑眉,通過(guò)它就可以避免拿到緩存中陳舊數(shù)據(jù)图呢。它們必須保證在被寫入之后,會(huì)被刷新到主內(nèi)存中需纳,這樣就可以立即對(duì)其它線程可以見” 我希望具體指出一下:
volatile緩存可見性實(shí)現(xiàn)原理:底層主要是通過(guò)匯編lock前綴指令
IA-32架構(gòu)軟件開發(fā)者手冊(cè)對(duì)lock指令的解釋:
1)會(huì)將當(dāng)前處理器緩存行的數(shù)據(jù)立即寫回到系統(tǒng)內(nèi)存芦倒。
2)這個(gè)寫回內(nèi)存的操作,會(huì)引起在其他CPU里的緩存了該內(nèi)存地址的數(shù)據(jù)無(wú)效(MESI協(xié)議)
22517907c8dc 評(píng)論自什么是Java內(nèi)存模型