这里有必要加volatile吗

来源:9-5 jmm的内存可见性

和光同尘B6

2021-02-22

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

老师像这里有必要加volatile吗

写回答

1回答

翔仔

2021-02-23

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

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


0
1
宝慕林7517718
之前忽略了第一次null检测,现在懂了,如果有重排序发生,可能会在第一次进行是否为null的检测时提前获取到未初始化的对象。
2022-07-10
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8441 学习 · 1872 问题

查看课程