单态模式(饿汉模式)
大家都知道单态模式的懒汉模式有线程安全问题。本文给出一种线程安全的写法。
public class SingletonTest2 {
private SingletonTest2()
{
System.out.println("正在初始化类的构造器");
}
//静态私有类的实例,为了保证返回的都是同一个实例,
private static SingletonTest2 instance=new SingletonTest2();
//共有的静态方法,用于返回类的实例。
public static SingletonTest2 getInstance()
{
return instance;
}
public static void main(String[] args) {
SingletonTest2 t1 =SingletonTest2.getInstance();
}
}
也可以使用二次验证来确保线程安全。但 java 平台内存模型中允许所谓的“无序写入”会导致二次检查失败。