Double lock detection / double checking lock (DCL, i.e., double-checked locking)
JDK version | Since JDK1.5 |
Are Lazy Initialization | Yes |
Are multi-thread safe | Yes |
Difficult to achieve | More complex |
Description: This dual mode locking mechanism, and in safe multithreading can maintain high performance.
Performance getInstance () is critical to the application.
/**
*
* @version 1.0.0
* @date 2019\8\4 20:29
*/
public class Singleton {
private static volatile Singleton instance;
private Singleton() { }
public static Singleton getInstance(){
if (instance==null){
synchronized (Singleton.class){
if (instance==null){
instance=new Singleton();
}
}
}
return instance;
}
}