我正在从Java Jpoint会议观看视频.
我对以下来自Alexey Shipilev报告的幻灯片有疑问:
打扰一下,请不要打扰我.实际上,作者说不可能将变量集设置为
r1 = 1 (Y)
r2 = 0 (x)
r3 = 1 (x)
r4 = 0 (Y)
根据视频,他暗示很明显.
有人可以澄清为什么JMM无法设置此值吗?
附言
如果我理解正确的Alexey表示法,则表示遵循以下代码:
public class SequentialConsistency {
static volatile int x;
static volatile int y;
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
x = 1;
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
y = 1;
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("r1=" + x + ", r2=" + y);
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("r3=" + x + ", r4=" + y);
}
}).start();
}
}