publicclassTestWithoutVolatile02{privatestaticvolatilebooleanbChanged;publicstaticvoidmain(String[]args)throwsInterruptedException{newThread(){@Overridepublicvoidrun(){fo...
public class TestWithoutVolatile02 {
private static volatile boolean bChanged;
public static void main(String[] args) throws InterruptedException {
new Thread() {
@Override
public void run() {
for (;;) {
if (bChanged == !bChanged) {
System.exit(0);
}
}
}
}.start();
Thread.sleep(1);
new Thread() {
@Override
public void run() {
for (;;) {
bChanged = !bChanged;
}
}
}.start();
}
}
哪位大神能帮忙解释下为什么 bChanged == !bChanged会是true
展开