では、volatileラヴな皆さんへの問題。

// 初期値はともに0とする。
volatile int a = 0;
volatile int b = 0;

int threadA() {
int x;
a = 1;
x = b;
return x;
}

int threadB() {
int x;
b = 1;
x = a;
return x;
}