单例模式线程安全吗?
单例模式作为一种常见的设计模式,在程序中非常常见,主要是为了保证一个类只有一个唯一的对象。
从简单的“饿汉式”、“懒汉式”→利用 synchronized 和 复杂的“双重校验DCL模式”,是一个考虑线程安全的过程
那么单例模式线程安全吗
1. 静态的饿汉式单例模式是线程安全的
那非静态的饿汉单例模式呢?
答案是:没有非静态的饿汉单例模式
// 线程安全
public class EhanMonitor {
private static EhanMonitor ehanMonitor =new EhanMonitor();
private EhanMonitor (){
}
public static EhanMonitor getEhanMonitor(){
return ehanMonitor ;
}
}
2. 在方法前面加synchronized的懒汉单例模式是线程安全的,但是效率低
//线程安全
public class Singleton2 {
private Singleton2(){
}
private static Singleton2 instance;
public static synchroni