有效Java的线程执行示例

时间:2018-02-07 06:27:55

标签: java multithreading java-threads

我正在阅读Effective Java,我遇到了这个例子。项目78:同步对共享可变数据的访问。我正在尝试Bloch提供的示例,这是示例

public class Pro{
    private static boolean stop;
    public static void main(String arg[]) throws InterruptedException {
        Thread thread = new Thread(() -> {
            int i=0;
            while(!stop){
                i++;
            }
        });
        thread.start();
        TimeUnit.SECONDS.sleep(1);
        stop=true;
    }
}

根据描述,此代码继续运行并且永不停止,但是当我在i ++之后添加System.out.println(i)时,程序实际上在一秒钟之后终止。知道为什么吗?

0 个答案:

没有答案