相关疑难解决方法(0)

双重检查锁定物品

我正在阅读这篇关于"双重检查锁定"的文章,并且在文章的主题之外我想知道为什么在文章的某些方面作者使用下一个成语:

清单7.尝试解决乱序写入问题

public static Singleton getInstance()  
{
    if (instance == null)
    {
        synchronized(Singleton.class) {      //1
            Singleton inst = instance;         //2
            if (inst == null)
            {
                synchronized(Singleton.class) {  //3
                    inst = new Singleton();        //4
                }
                instance = inst;                 //5
            }
        }
    }
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有理由用同一个锁同步两次代码?有这个任何目的吗?

提前谢谢了.

java synchronization locking double-checked-locking

11
推荐指数
3
解决办法
1939
查看次数