关注
个人理解,你的回答是对的。先跑A线程,因为new 对象的过程不是原子的,那就可能分配了内存但没有初始化,此时跑B线程,check时因为对象分配了内存不会为null,直接返回了一个没有初始化完成的对象,然后A线程再初始完对象……所以根源在于 new 操作非原子,存在被指令重排的可能性,对象虽然只会被 new 一次而且可以成功初始化,但在 new 的过程中,其他线程可能会拿到未被初始化完成的对象。
查看原帖
2 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
04-09 18:46
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作,行业重要还是岗位重要? #
7895次浏览 103人参与
# 五一之后,实习真的很难找吗? #
46025次浏览 330人参与
# 盲审过后你想做什么? #
12726次浏览 113人参与
# 领导秒批的请假话术 #
10002次浏览 74人参与
# 外包能不能当跳板? #
22204次浏览 191人参与
# 设计人如何选offer #
98440次浏览 690人参与
# 五一假期,你打算“躺”还是“卷”? #
31065次浏览 436人参与
# 考研可以缓解求职焦虑吗 #
21232次浏览 251人参与
# 面试等了一周没回复,还有戏吗 #
115684次浏览 1075人参与
# 大疆的机械笔试比去年难吗 #
69657次浏览 603人参与
# 如果有时光机,你最想去到哪个年纪? #
43348次浏览 769人参与
# 找工作前vs找工作后的心路变化 #
7206次浏览 64人参与
# 写简历别走弯路 #
714589次浏览 7850人参与
# 应届生薪资多少才合理? #
3119次浏览 24人参与
# 你喜欢工作还是上学 #
37706次浏览 413人参与
# 硬件人,你被哪些公司给挂了 #
46754次浏览 723人参与
# 每人推荐一个小而美的高薪公司 #
72852次浏览 1357人参与
# 如果不工作真的会快乐吗 #
101273次浏览 867人参与
# 牛友们的论文几号送审 #
27279次浏览 623人参与
# 许愿池 #
271890次浏览 2849人参与