索引
链接
https://mp.weixin.qq.com/s/nrlvUDpUoVyLBg318EMkJQ
文章截图
简评
核心知识点:对volatile变量的操作会有准内存、本地内存同步的“性能损耗”,所以搞了个临时变量来访问volatile变量。之所以我打了引号,是因为我觉得这么点损耗,对于99.999%的业务场景来说,都不应该说是损耗…肯定是微乎其微的。这个知识点记着就好,面试或许有用。
这里额外说一下,单例的变量用volatile修饰,是为了防止指令重排序,因为new不是原子操作,如果new的某些步骤指令重排了,其他线程可能判断instance已经不是null了,但是却还是未被正确初始化后的对象。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/1986