之前發生了,我有兩個線程:volatile變量和訂購
主題:1
a = 1;
x = b;
主題:2
b = 1
y = a
這裏a和b聲明爲volatile。我不明白在a = 1;之間如何創建「發生之前」邊緣;和y = a;和x = b之間;和b = 1;
我明白,通過使用volatile變量,可以防止從線程緩存讀取陳舊值。但是,如何確保在訂購之前發生易失變量。
具體來說,我不明白這一點:
到揮發性現場寫的 同一領域的每一個後續讀之前發生 。
鋤頭能行嗎?
看到這個最近的問題和答案的很多相關的信息:http://stackoverflow.com/questions/3964317/memory-barriers-and-coding-style-over-a-java-vm – andersoj 2010-10-19 18:43:36