public class Test {
private static volatile Test INSTANCE;
private Test() {
}
public static Test getInstance() {
if (Objects.isNull(INSTANCE)) { // Double Check Lock
synchronized (Test.class) {
if (Objects.isNull(INSTANCE)) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
INSTANCE = new Test();
}
}
}
return INSTANCE;
}
}