我正在阅读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)时,程序实际上在一秒钟之后终止。知道为什么吗?