【发布时间】:2019-02-20 06:40:56
【问题描述】:
为什么我们需要在获取锁之前和之后检查 null ? 一旦我们获得了锁,没有线程可以拥有锁,那么为什么在同步块之前不需要空检查呢?
public class DclSingleton {
private static volatile DclSingleton instance;
public static DclSingleton getInstance() {
**if (instance == null) {**
synchronized (DclSingleton .class) {
**if (instance == null) {**
instance = new DclSingleton();
}
}
}
return instance;
}
// private constructor and other methods...
}
【问题讨论】:
标签: java design-patterns synchronization singleton