单例模式-懒汉和饿汉
/**
* 懒汉模式,有线程安全问题
*/
public class Singleton {
public static Singleton singleton;
public static Singleton getSingleton() {
if(singleton==null){
singleton = new Singleton();
}
return singleton;
}
}
修改后的懒汉模式
/**
* 懒汉模式,线程安全
*/
public class Singleton {
public static volatile Singleton singleton;
public static Singleton getSingleton() {
if(singleton==null){
synchronized (singleton){
if(singleton==null){
singleton = new Singleton();
}
}
}
return singleton;
}
}
/**
* 饿汉模式
*/
public class Singleton {
private static Singleton singleton = new Singleton();
public static Singleton getSingleton() {
return singleton;
}
}

浙公网安备 33010602011771号