單例模式之雙鎖機制
阿新 • • 發佈:2019-01-06
//單例模式(雙鎖機制)
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;
}
}