单例双重检测第二个判空的作用
来源:9-5 jmm的内存可见性
莨菽菽
2020-06-05
第二个判空的作用是什么,第一个判空才进syn代码块,进去之后就不需要再判断了吧?
写回答
1回答
-
同学好,如果没有第二个判断。。 线程1和线程2同时进入第一个if,然后假设线程1获得同步锁,然后去执行创建语句,创建了实例A,释放了锁,此时线程2拿到锁,直接创建了实例B,此时两个线程得到的实例不是同一个,就违反单例了
032022-03-14
相似问题
单例双重检测第二个判空的作用
来源:9-5 jmm的内存可见性
莨菽菽
2020-06-05
第二个判空的作用是什么,第一个判空才进syn代码块,进去之后就不需要再判断了吧?
1回答
同学好,如果没有第二个判断。。 线程1和线程2同时进入第一个if,然后假设线程1获得同步锁,然后去执行创建语句,创建了实例A,释放了锁,此时线程2拿到锁,直接创建了实例B,此时两个线程得到的实例不是同一个,就违反单例了
相似问题