請寫一個延遲加載的單例模式?寫懶漢式;當出現多線程訪問時怎麼解決?加同步,解決安全問題;效率高嗎?不高;怎樣解決?經過雙重判斷的形式解決。
懶漢式:延遲加載方式。
當多線程訪問懶漢式時,由於懶漢式的方法內對共性數據進行多條語句的操做。因此容易出現線程安全問題。爲了解決,加入同步機制,解決安全問題。可是卻帶來了效率下降。
爲了效率問題,經過雙重判斷的形式解決。
class Single{
private static Single s = null;
private Single(){}
public static Single getInstance(){ //鎖是誰?字節碼文件對象;
if(s == null){
synchronized(Single.class){
if(s == null)
s = new Single();
}
}
return s;
}
}安全