黑马程序员技术交流社区

标题: 同步中的单例设计模式 [打印本页]

作者: 云水禅心    时间: 2013-10-2 20:41
标题: 同步中的单例设计模式
同步中的单例设计模式
饿汉式。
/*
classSingle
{
   pricate static final Single s = new Single();
   private Single(){}
   public static Single getInstance()
   {
       return s;
   }
}
*/
/*懒汉式:(实例的延时加载)因为每个对象进入都要判断Single.class这个锁,这就降低了程序运行效率,
          所以用双重判断来解决这个问题。
特点:懒汉式的特点是延时加载,当多线程访问时,会出现安全问题,解决的方法是加同步,而加同步用同步代码块和同步函数都行,
      但是稍微有些低效,用双重判断的形式能解决这个问题。加同步使用的锁是该类所属的字节码文件对象
*/
classSingle
{
   private static Single s = null;
   private Single(){}
   public static Single getInstance()
   {
       if(s==null) //一层判断
       {
          synchronized(Single.class)//Single.class 是加同步使用的锁
          {
              if(s==null)//另一层判断
              s = new Single();
          }
       }
       return s;
   }
}
classSingleDemo
{
   public static void main(String[] args)
   {
       System.out.println("HelloWorld");
   }
}

作者: 蔚蓝天色    时间: 2013-10-2 21:58
嗯,多谢分享
作者: 云水禅心    时间: 2013-10-2 22:07
应该的   互相帮助    希望能共同进步   进入26




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2