很多人说因为内存什么的原因,双重检查锁可能会失效,小白实在看不太懂,
只想知道结论是什么?双重检查锁到底该不该用?
如果不该用,那单例模式更好的写法是什么?
附代码
class SingleTon2 {
private static SingleTon2 s2 = null;
public static SingleTon2 getInstance() {
if (s2 == null) {
synchronized (SingleTon2.class) {
if (s2 == null) {
s2 = new SingleTon2();
}
}
}
return s2;
}
private SingleTon2() {
System.out.println("懒汉式初始化.......");
}
}