- 博客(1)
- 收藏
- 关注
原创 DCL单例中,实例变量为什么要用volatile修饰
"乙"处对象实例化过程是非原子的,共分为3步:1.在内存中开辟一片内存区域 2.在这片内存区域中执行构造函数,实例化对象 3.instance引用指向这片内存区域。 假设instance变量没有用volatile关键字修饰,A、B两线程并发访问DCL.class的getInstance()方法,A先执行(时间上)。当线程A执行到"乙"处,上述3步操作可能被指令重排序为1->3->...
2019-07-16 13:09:30
790
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人