学习目标:
提示:多线程实例
整理学习内容-Guide哥的内容
学习内容:
双重检验锁⽅式实现单例模式的原理
实例目的:保证线程安全
学习代码:
public class Singleton {
private volatile static Singleton uniqueInstance;
private Singleton() {
}
public static Singleton getUniqueInstance() {
//先判断对象是否已经实例过,没有实例化过才进⼊加锁代码
if (uniqueInstance == null) {
//类对象加锁
synchronized (Singleton.class) {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
}
Volatile禁止JVM指令重排,保证了多线程下能正常运行!