“Java Concurrency in Practice”中的代码片段:
public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread{
public void run(){
while(!ready)
Thread.yield();
System.out.println(number);
}
}
public static void main(String[] args) {
new ReaderThread().start();
number = 42;
ready = true;
}
}
在这本书中,作者说" NoVisibility类可能会打印0或42",但我运行了这个代码几次,结果总是42。