码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-01 22:13:24      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:blog   一个   turn   通过   单例设计模式   sync   饿汉式   代码块   color   

首先回顾一下单利设计模式:
     单利设计模式是通过某种方式使某个类只能创建一个对象实例供外界使用。
单利设计模式分为懒汉式和饿汉式:
饿汉式是线程安全的:
 
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 }

 

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

标签:blog   一个   turn   通过   单例设计模式   sync   饿汉式   代码块   color   

原文地址:http://www.cnblogs.com/anzhi/p/7465149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!