我觉得面试官是问,既然synchronize既然能保证原子性,那么原子性的东西应该没有中间状态啊,就是A a = new A();要么是没执行A a=new A(),此时a为null,要么是三条指令都执行完(1.给A的对象分配内存 2.初始化A的对象 3.a引用指向刚才分配的内存),那为啥其他线程被允许读到一个中间状态呢?这跟原子性相违背啊。 是因为原子性只是对当前线程而言吗?还是我没理解原子性?
点赞 4

相关推荐

双尔:反手回一个很抱歉,经过慎重考虑,您与我的预期暂不匹配,感谢您的投递
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务