自我檢測:
1.**
2.volatile的作用
3.兩個 instance==null 分別的作用
4.synchronized同步**塊內,獲取類的三個方法
1.**
public class singleton;
public static singleton getinstance(){
if(instance==null){
synchronized(singleton.class){
if(instance==null){
instance = new singleton();
return instance;
2.volatile的作用
防止singleton指令重排序。
3.兩個 instance==null 分別的作用
第乙個:防止多個執行緒建立多個例項
第二個:防止多個執行緒同時進入第乙個判斷,建立第乙個例項的執行緒釋放鎖後,其他執行緒獲得鎖再建立多餘例項。
4.synchronized同步**塊內,獲取類的方法
1)singleton.class 2)instance.getclass 3)class.forname("類路徑的字串,用'.'間隔")
單例模式 雙重校驗鎖
單例模式 雙重校驗鎖 author szekinwin public class singleton3 私有化構造方法 private static volatile singleton3 singleton null public static singleton3 getinstance ret...
雙重校驗鎖實現單例模式
1 先上 public class singleton public static singleton getinstance return instance 2 分析 第一次校驗 instance null 單例模式只需要建立乙個例項,假如例項不為空則不需要去競爭鎖,提高效能 第二次校驗 inst...
單例雙重校驗鎖
public class singledoublelock 1 第一次校驗 因為該類是單例的只建立一次,大部分時間single都不為空,所以不會進行第一次檢驗的 塊內部,從而提高效率 2 第二次校驗 如果single為空,執行緒t1,t2進入第一次檢驗的 塊,t1執行synchronized 塊 n...