6条回答 默认 最新
- qq_30680953 2016-03-16 00:49关注
再回去又读了一遍,有如下解释:
根据JVM设置,如果设置成server模式会有指令重排,如上述循环判断就会变成if(!ready){while(true){...}}所以就会造成死循环,如果设置成volatile,JVM就不会对这个变量进行指令重排。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
再回去又读了一遍,有如下解释:
根据JVM设置,如果设置成server模式会有指令重排,如上述循环判断就会变成if(!ready){while(true){...}}所以就会造成死循环,如果设置成volatile,JVM就不会对这个变量进行指令重排。