[java] volatile关键字对while循环条件提升问题补充

在java并发编程中,代码如下:
1 volatile boolean asleep;
2 ...
3 while(!asleep){
4 countSomeSheep();
5 }
如果此处忘记将asleep变量设置为volatile类型, 那么server模式运行的jvm会将asleep的判端条件提升到循环体外部,这将导致无限循环.单是client模式下的jvm并不会这么做.
关于如何以server模式启动jvm: 启动时,指定 -server参数即可.
 
 
 
-- 笔记出处: java并发编程实战
 
原文地址:https://www.cnblogs.com/duenboa/p/6665258.html