15
我想我理解單變量發生之前的關係。如果我編寫一個易失性字段,則此字段的所有後續讀取都將包含此新值。編寫一個volatile
跨越內存屏障並將新值刷新到主內存。Java內存模型 - 在穿越內存屏障時到底是什麼沖刷到內存?
我仍然不清楚在所有其他情況下會發生什麼 - 例如Thread.start()
,或java.util.concurrent
中的新鎖。這是什麼意思,他們也跨越記憶障礙?哪些數據從本地緩存刷新到主內存?換句話說,穿越的範圍是什麼?
是的一切總是被刷新?現在回到volatile
,它不僅僅是單一的volatile
字段?
好一點。我改變了語言。 – 2012-04-02 21:17:36
另外,您應該提及它會刪除在中央內存中髒的任何緩存存儲。對不起,挑剔。這是一個很好的問題。 – Gray 2012-04-02 21:19:19
@Gray能否詳細說明(或提供鏈接)在主內存中的髒緩存?它是什麼? – 2012-04-02 21:29:58