请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里有必要加volatile吗

    private static volatile Singleton instance = null;
    private Singleton() {}
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
             }
        return instance;
        }

老师像这里有必要加volatile吗

正在回答 回答被采纳积分+3

插入代码

1回答

翔仔 2021-02-23 01:24:09

同学好,有必要的哈,volatile防止重排序,否则多线程可能会有问题,具体同学可以看看这篇,此外,咱们课程里也有讲解

https://www.cnblogs.com/zhuifeng523/p/11360012.html


0 回复 有任何疑惑可以回复我~
  • 之前忽略了第一次null检测,现在懂了,如果有重排序发生,可能会在第一次进行是否为null的检测时提前获取到未初始化的对象。
    回复 有任何疑惑可以回复我~ 2022-07-10 11:49:03
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号