volatile的禁止指令重排

处理器为了考虑程序运行的高效性,采用了指令重排   但是有一点,要考虑数据之间的依赖性(先有谁,后有谁)

可以参考下面关于单例模式的博客,之前还不懂单例模式为啥要加禁止指令重排

 

 

 

也就是说 instance的值此时是不等于null  但是对象还没有初始化  return 了一个空对象

 

 

 

 

 

解决方法

 

posted @ 2021-12-09 10:11  11111ghm  阅读(171)  评论(0)    收藏  举报