黑马程序员技术交流社区
标题:
懒汉式单例设计模式中第二次if判断有必要么?
[打印本页]
作者:
胡几手
时间:
2015-3-22 14:41
标题:
懒汉式单例设计模式中第二次if判断有必要么?
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single();
}
}
return s;
}
}
如上代码,同步锁里面的if判断存在的意义是什么,百思不得其解啊,哪位大神解答下啊。
作者:
小七的
时间:
2015-3-22 15:49
双重的if判断,减少对锁的判断次数,
作者:
有丶时候
时间:
2015-3-22 15:58
多加一个if判断是为了不让其多次判断锁synchronized(Single.class),能稍微提高懒汉式的效率。建议你看一遍毕老师单例设计模式那个视频,讲得很形象。
作者:
wkz_crystal
时间:
2015-3-22 16:05
你这样想:如果没有外出循环,是不是程序每次进来都要经历到锁的位置,有了if判断之后,是为空才进来,不是对象为空,直接用就OK,
作者:
rhui
时间:
2015-3-22 16:39
s=new Single上面那个判断吗,不懂,没看明白怎么回事,同求
作者:
One_M
时间:
2015-3-22 16:40
这样就不用每次都判断锁了....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2