私はC03「の練習でJavaの同時実行」を読んだとき、私は以下のプログラムで混乱していた。そのため、並べ替えやスレッドの可視性のJavaスレッドの可視性
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;
}
}
に、ループは停止しないかもしれない、または出力はゼロかもしれませんが、何度も試してみましたが、出力は常に42です。 すべての理由は私があまりにもラッキーですか?
この質問は[this one](http://stackoverflow.com/questions/1919469/question-about-java-concurrency-in-practice-example)とまったく同じです。 – xea