之前发生了,我有两个线程: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