日期:2014-05-20  浏览次数:20737 次

关于并发,请高手指教一二
public   class   Singleton   {
    private   static   Singleton   instance   =   null   ;
    private   Singleton(){};

    public   static   Singleton   getInstance(){
      if(instance!=null)
          instance=new   Singleton();
          return   instance;
      }
}  
如果有多人同时调用getInstance()方法,如何保证只创建一个Singleton对象,并且不牺牲效率?
java不支持双重检查吗?


------解决方案--------------------
无论多少人调用getInstance()方法,都只创建一个Singleton对象,所以不存在你所说的保不保证的问题.
你看看这两行代码就知道:
if(instance!=null)
instance=new Singleton();
如果为NULL时,才去创建.