java 单例模式双重if判断理解

2017-05-18  本文已影响0人  青晨点支烟

代码如下:

内层判断:如果内层不加if判断,就会实例化多次,这是显而易见的,这就违背了单例模式的单例二字。

外层判断:试图想想一种情况,当线程1走完了内层判断,对象实例化了,线程3也调用了getInstace函数,如果没有加外层的判断线程3还是要继续等待线程2的完成,而加上外层判断,就不需要等待了,直接返回了实例化的对象。

我的理解:外层的判断是为了提高效率,里层的判断就是第一次实例化需要。

上一篇下一篇

猜你喜欢

热点阅读