dcl单例模式:懒汉式基础上加入并发控制,保证多线程下对外只存在一个单例。
public class DoubleCheckingLocking {
private static DoubleCheckingLocking dcl;
private DoubleCheckingLocking(){
}
public static DoubleCheckingLocking getDcl(){
//双重检查 防止不必要的同步等待
if (null != dcl) {
return dcl;
}
//同步检查
synchronized (DoubleCheckingLocking.class){
if (null == dcl) {
dcl = new DoubleCheckingLocking();
}
}
return dcl;
}
}