用Java语言写一个双重检验的单例模式
时间: 2023-03-24 13:02:25 浏览: 69
好的,我可以回答这个问题。双重检验锁定的单例模式是一种常见的实现方式,可以保证在多线程环境下只创建一个实例。以下是一个用 Java 语言实现的双重检验锁定的单例模式的示例代码:
```
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
在这个实现中,使用了 volatile 关键字来保证 instance 变量的可见性,使用了 synchronized 关键字来保证在多线程环境下只有一个线程可以创建实例。