对于 DCL(Double Check Lock)情况下的对象安全发布,一直理解得不足够清楚;在通过和同事,以及和互联网上一些朋友的讨论之后,我觉得已经把问题搞清楚了。我把我对这个问题的理解简要记录在这里。
现在有代码 A:
class T { private static volatile T instance; public M m; // 这里没有 final 修饰 public static T getInstance() { if (null == instance) { synchronized (T.class) { if (null ==
[……]阅读全文