0

Thread.start()与新线程的启动相关的变量可见性和/或指令顺序是否有任何保证?

具体来说,在下面的简约示例中,我是否正确假设var应该是volatile为了使输出具有确定性并始终打印“var = 10”?

public class ThreadExample {

    private int var;

    void example() {
        var = 10;
        Thread thread = new MyThread();
        thread.start();
    }

    class MyThread extends Thread {
        @Override
        public void run() {
            System.out.println("var = " + var);
        }
    }

}

注意:我的问题仅适用于 Java 5 中引入的“新”Java 内存模型

4

0 回答 0