文中開頭的例子舉得有問題,因?yàn)?jvm 默認(rèn)使用了 JIT 才導(dǎo)致的可見性問題,如果禁用掉 JIT 后,MESI 協(xié)議本身就能保證可見性,而不是說使用了 volatile 后,才告訴 cpu 需要使用 MESI 協(xié)議
吃透Java并發(fā):volatile是怎么保證可見性的前言 volatile關(guān)鍵字能夠保證可見性和有序性,但是volatile為什么能夠保證可見性和有序性?為什么volatile又不能保證原子性?今天,我們從CPU多核緩存架構(gòu)出...