相关疑难解决方法(0)

关于"Java Concurrency in Practice"示例的问题

我正在查看Brian Goetz撰写的"Java Concurrency in Practice"中的代码示例.他说这段代码可能会保持无限循环,因为"'ready'的值可能永远不会对读者线程可见".我不明白这是怎么发生的......

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;
    } 
}
Run Code Online (Sandbox Code Playgroud)

java concurrency

22
推荐指数
3
解决办法
1680
查看次数

标签 统计

concurrency ×1

java ×1