这节考点好多啊。分享一下给大家。希望加深一下理解。 
下面是代码:class Single 
{ 
        private static Single s = null; 
        private Single(){} 
        public  static Single getSingle() 
        { 
                //如果第一个线程获取到了单例的实例对象 
                //那么后面的线程获取实例就不需要进入同步代码块了。 
          if (s=null) 
                { 
                        synchronized(Single.class) 
                        { 
                                   if (s=null) 
                                                 s = new Single; 
                                   return s; 
                        } 
                } 
        } 
} 
        懒汉式用于实例的延时加载。 
        如果多线程访问出现安全问题:通过加同步来解决。同步代码块和同步函数都以 
        用双重判断方式可以解决效率问题。 
        加同步时使用的锁是  该类所属的字节码对象。 
大家多多了解下哈。 |   
        
 
    
    
    
     
 
 |