写一段java双重检查单例模式
时间: 2024-05-08 12:15:32 浏览: 71
设计模式 单件模式 设计模式 单件模式
双重检查单例模式是一种线程安全的单例模式,它可以在多线程环境下确保只有一个实例被创建。以下是一段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变量的可见性,从而避免了多线程环境下的线程安全问题。在getInstance()方法中,我们首先检查instance是否为null,如果是,则进入同步代码块。在同步代码块中,我们再次检查instance是否为null,如果是,则创建一个新的实例并赋值给instance变量。最后,我们返回instance变量。由于双重检查单例模式只在第一次调用getInstance()方法时才会创建实例,因此可以提高系统的性能。
阅读全文