线程安全的懒汉式单例设计模式

首先回顾一下单利设计模式:
     单利设计模式是通过某种方式使某个类只能创建一个对象实例供外界使用。
单利设计模式分为懒汉式和饿汉式:
饿汉式是线程安全的:
 
1 //饿汉式单利设计模式:
2  class Single{
3      private static final Single single = new Single();
4      private Single(){}
5      public static Single getInstance(){
6           return s;
7      }
8  }
 
饿汉式实现线程安全,可以通过给获取实例的方法添加同步或者添加同步代码块,
     但是这样会损失时间效率,使每一次调用都会判断是否拥有锁,那么可以通过双重判空和同步代码块的方法来实现
     线程安全,从而也提高了效率
 关于线程锁可以查看:线程锁详解
 1 //线程安全的懒汉式单例设计模式
 2 public class SingleDemo {
 3 //懒汉式,线程安全的,双重判断加同步线程
 4      private static SingleDemo singleDemo=null;
 5      private SingleDemo() {}
 6      public static SingleDemo getInstance() {
 7           if (singleDemo==null) {
 8               synchronized(SingleDemo.class) {
 9                    if (singleDemo==null) {
10                         singleDemo = new SingleDemo();
11                    }
12               }
13           }
14           return singleDemo;
15      }
16 }

 

posted @ 2017-09-01 21:29  赵安之  阅读(920)  评论(1)    收藏  举报