//单例模式(双锁机制)
1.创建一个单例类
2.创建一个加锁的静态单例对象
3.创建一个无参的构造函数
4.创建一个静态的方法返回值为单例对象,判断对象是否为空如果为空则再加同步锁,把对象锁住,然后再次判空,如果为空则创建实例,然后返回实例
public class Singleton{
//先加一把锁
public volatile static Singleton singleton;
//无参构造
public Singleton{
}
public static Singleton getInstance(){
if(null==singleton){
//同步锁
synchronized(Singleton.class){
if(null==singleton){
singleton=new Singleton();
}
}
}
return singleton;
}
}
1.创建一个单例类
2.创建一个加锁的静态单例对象
3.创建一个无参的构造函数
4.创建一个静态的方法返回值为单例对象,判断对象是否为空如果为空则再加同步锁,把对象锁住,然后再次判空,如果为空则创建实例,然后返回实例
public class Singleton{
//先加一把锁
public volatile static Singleton singleton;
//无参构造
public Singleton{
}
public static Singleton getInstance(){
if(null==singleton){
//同步锁
synchronized(Singleton.class){
if(null==singleton){
singleton=new Singleton();
}
}
}
return singleton;
}
}