一、概述
在 Java 开发中,单例模式是一种常用的设计模式,其目的是确保某个类只有一个实例。
DCL(double-checked locking) 是一种线程安全的单例模式。
二、代码实现
public class Singleton {
// 1.创建一个私有的静态变量来存储单例实例的
// volatile 是用来禁止指令重排序的
private static volatile Singleton singleton = null;
// 2.定义 私有的无参构造方法
private Singleton(){
}
// 3.定义一个公共的静态方法来获取该单例实例
public static Singleton getInstance(){
// 第一次检查实例是否已经创建
if(null == singleton){
synchronized (Singleton.class){
// 第二次检查实例是否已经创建,防止已创建的对象再次创建
if(null == singleton){
// 创建实例 对象
singleton = new Singleton();
}
}
}
// 返回
return singleton;
}
}