采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,这种情况,如果构造方法里面没有其他操作,是不是不加volatile也可以呢?不会涉及到重排序的问题
构造方法里面就算你什么都没写,但也是有构造的,如果不加volatile,一样会导致开两块内存构造两次对象,就不是单例啦。
另外,如果你的类有很多成员,即便你不在构造里面写任何代码,这些成员的初始化操作也会做为构造的一部分的~
非常感谢!
首先,对象的初始化操作本身就不是原子性操作。所以可能引用拿到了,但是还没初始化完成。 给instance加上volatile的话,保证给instance赋值前的操作都要执行完才会赋值,这样来禁止重排序。 是这样吗老师?
没错~
登录后可查看更多问答,登录/注册
改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程
1.2k 1
1.3k 16
1.0k 10
1.3k 10
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号