使用持有者類 Bill Pugh Singleton 實現的執行緒安全延遲初始化
public class Singleton {
private static class InstanceHolder {
static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return InstanceHolder.INSTANCE;
}
private Singleton() {}
}
這在第一次呼叫 Singleton.getInstance()
時初始化 INSTANCE
變數,利用語言的執行緒安全保證進行靜態初始化,而無需額外的同步。
這種實現也稱為 Bill Pugh 單例模式。 [維基]