有一个共同的信念和多个来源(包括wiki)声称这个习语是一种反模式。
鉴于使用了正确的实现(例如,使用volatile) ,反对在生产代码中使用它的论点是什么
在多线程环境中实现延迟初始化的适当替代方案是什么?锁定整个方法可能会成为瓶颈,即使现代同步相对便宜,它仍然要慢得多,尤其是在争用情况下。静态持有者似乎是一种特定于语言的并且有点丑陋的黑客(至少对我来说)。基于原子的实现似乎与传统的 DCL 没有太大区别,同时允许多次计算或需要更复杂的代码。例如,Scala仍在使用DCL 来实现惰性值,而提议的替代方案似乎要复杂得多。