A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 云水禅心 中级黑马   /  2013-10-2 20:41  /  1104 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

同步中的单例设计模式
饿汉式。
/*
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");
   }
}

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

2 个回复

倒序浏览
嗯,多谢分享
回复 使用道具 举报
应该的   互相帮助    希望能共同进步   进入26
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马