关注
这里解释一下,volatile 的作用确实不是禁止指令重排序(虽然网上大都是这么笼统的说的) 之所以多线程会获取到未完全初始化完成的单例对象,是因为new关键字在字节码中是分三步来执行的,正是这三步的乱序造成了线程不安全的问题。volatile真正的作用是在这三步字节码前后加上内存屏障(而不是禁止重排),从而防止对象在未初始化完成就被获取
查看原帖
14 10
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
27732次浏览 268人参与
# 入职以后才知道的校招谎言 #
88636次浏览 580人参与
# 风评不好的公司,你会去吗? #
63379次浏览 450人参与
# 华子oc时间线 #
1244536次浏览 6485人参与
# 哪些公司校招卡第一学历 #
70173次浏览 280人参与
# 校招第一份工作你干了多久? #
95291次浏览 423人参与
# 实习如何「偷」产出? #
52758次浏览 1354人参与
# 除了主业以外,你还有哪些其他收入? #
12545次浏览 202人参与
# 不卡学历的大厂有哪些? #
30453次浏览 232人参与
# 机械人,你的第一份感谢信是谁给的 #
30598次浏览 310人参与
# 校招阶段,学历VS技术哪个更重要? #
18171次浏览 188人参与
# 职场新人体验 #
27096次浏览 250人参与
# 研究所笔面经互助 #
78561次浏览 483人参与
# 工作丧失热情的瞬间 #
294127次浏览 2372人参与
# 腾讯音乐求职进展汇总 #
98258次浏览 570人参与
# 你的秋招第一场笔试是哪家 #
148225次浏览 1485人参与
# 社恐入职新公司如何融入团队 #
12042次浏览 63人参与
# 华为开奖那些事 #
4094420次浏览 24608人参与
# 校园里的破防时刻 #
11921次浏览 128人参与
# Offer比较,你最看重什么? #
191836次浏览 1308人参与