

package com.cy.SingtonInstance;
import sun.security.jca.GetInstance;
public class DCLSingletonInstanceDemo {
private static volatile DCLSingletonInstanceDemo instance = null;
private DCLSingletonInstanceDemo() {
System.out.println("constructor method....");
}
//DCL(double check lock机制)
public static DCLSingletonInstanceDemo getInstance() {
if (instance == null) {
synchronized (DCLSingletonInstanceDemo.class) {
if (instance == null) {
instance = new DCLSingletonInstanceDemo();
}
}
}
return instance;
}
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
new Thread(() -> {
DCLSingletonInstanceDemo.getInstance();
}, String.valueOf(i)).start();
}
}
}
版权声明:本文为m0_37989184原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。