【发布时间】:2010-10-19 17:39:51
【问题描述】:
我有两个线程:
线程:1
a = 1;
x = b;
线程:2
b = 1
y = a
这里 a 和 b 被声明为 volatile。我不明白如何在 a = 1; 之间创建“之前发生”的边缘;和 y = a;在 x = b 之间;和 b = 1;
我知道通过使用 volatile 变量可以防止从线程缓存中读取过时的值。但是 volatile 变量如何确保在排序之前发生。
具体来说,我没看懂:
发生对 volatile 字段的写入 在每次后续阅读之前 相同的字段。
锄头有用吗?
【问题讨论】:
-
查看这个最近的问题和答案以获得很多相关信息:stackoverflow.com/questions/3964317/…