Bill Pugh Singleton 是一种线程安全的单例模式实现方法,它解决了线程安全和性能问题。下面是一个示例代码:
public class Singleton {
private Singleton() {
// 私有构造函数
}
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
在这个例子中,Singleton 类的构造函数是私有的,所以它不能被直接实例化。SingletonHolder 类是一个静态内部类,它持有 Singleton 的实例,并在需要时初始化。getInstance 方法返回 SingletonHolder 的实例,确保只有一个 Singleton 实例被创建。
这种实现方法通过使用静态内部类来实现懒加载和线程安全。在 SingletonHolder 类初始化时,JVM 会保证线程安全。同时,由于 Singleton 实例是在 getInstance 方法中被初始化,它是懒加载的,即只有在第一次调用 getInstance 方法时才会被创建。
因此,Bill Pugh Singleton 是一种线程安全的单例模式实现方法。