public class Singleton {
private static volatile Singleton singleton = null;//volatile阻止JVM对指令执行顺序的优化,防止乱序执行导致导致返回的实例为半成品
private void Singleton() {}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {//双重检查,如果第二个线程进入不做检查会产生不同的实例
singleton = new Singleton();
}
}
}
return singleton;
}
public static void main(String[] args) {
System.out.println(Singleton.getInstance() == Singleton.getInstance());
}
}
浙公网安备 33010602011771号