//线程安全创建单例模式 利用synchronized 关键字创建
public class Singleleton{
private static volatile Singleleton instance = null;
private Singleleton(){};
public static Singleleton getInstance(){
if(instance == null){
synchronized (Singleleton.class){
if(instance == null){
instance = new Singleleton();
}
}
}
return instance;
}
}
//线程安全以优雅的方式创建单例模式 利用类的创建是线程安全的
public class Singleleton2 {
private Singleleton2(){
}
public Singleleton2 getInstance(){
return Holder.instance;
}
private static class Holder {
private static final Singleleton2 instance = new Singleleton2();
}
}