背景
在单例模式的设计中,一般会用到两种方式:
立即加载 : 在类加载初始化的时候就主动创建实例;也称为饿汉式加载。
延迟加载 : 等到真正使用的时候才去创建实例,不用时不去主动创建。也称为懒汉式加载。
//饿汉式加载
//立即创建对象
private static SingletonThread singletonThread = new SingletonThread ();
private SingletonThread (){
}
public static SingletonThread getInstance(){
return singletonThread ;
}
//懒汉式加载
private static SingletonThread instance;
//使用用才创建对象
public static SingletonThread getInstance() {
if (instance == null) {
instance = new SingletonThread();
}
return instance;
}
饿汉式加载单例模式在多线程环境中的问题
/**
* 懒汉式单例模式在多线程安全的问题
*
* @author zhuhuix
* @date 2020-05-08
*/
public class SingletonThread {
static SingletonThread instance;
static SingletonThread getInstance() {
if (instance == null)