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

Posted 学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全的懒汉式单例设计模式相关的知识,希望对你有一定的参考价值。

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

 

以上是关于线程安全的懒汉式单例设计模式的主要内容,如果未能解决你的问题,请参考以下文章

单例模式

单列模式对比

饥饿式单例模式

4创建型模式之单例模式__多线程下的懒汉式单例和饿汉式单例

单例模式

单例模式的线程安全性