Volatile 以DCL失效談內存屏障用來禁止指令重排序的原理

引言 大家都知道volatile關鍵字具有兩重語義即: 1)保證了不同線程對這個變量進行操作時的可見性,即一個線程修改了某個變量的值,這新值對其他線程來說是立即可見的。 2)禁止進行指令重排序。 第一個好理解,也就是說每次修改都立即更新到主內存,那麼禁止重排序這個在網上更多的解釋是說使用了內存屏障,使得前後的指令無法進行重排序。(關於volatile詳解) 那麼問題來了,什麼是內存屏障?volat
相關文章
相關標籤/搜索