我遇到一些使用懒惰实例化单例模式的问题任何单例模式早实例化问题
参考:http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html。
同样,在使用早实例化单例模式时是否存在任何问题?
我遇到一些使用懒惰实例化单例模式的问题任何单例模式早实例化问题
参考:http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html。
同样,在使用早实例化单例模式时是否存在任何问题?
这是大约十年前写的。自2004年以来,最简单的Singleton模式是使用一个enum
,只有一个例子。
enum Singleton {
INSTANCE;
}
的想法似乎是实例单身可能是昂贵的,所以如果它早做(也许对于很多单身的),可能导致长时间的停顿时,应用程序启动,而懒惰instatiation利差如果不总是需要单身人士,那么周围的延迟可能会完全避免。
这对于大量的应用程序来说真的是一个问题吗?我非常肯定它不是,博客文章的数量和有关懒惰实例化单例的问题与其实际用途完全不成比例。我同样可以肯定,所有这些注意力给了很多人一个印象,那就是如何实现Singletons并使他们在一个直接的半切实例化的Singleton将会非常好的地方选择一个不必要的复杂解决方案。
那么为什么这个问题得到如此多的关注?我怀疑这部分是事实,它说明了Java存储器模型的一些细节,它们与一般的并发代码相关,部分是smartassery游戏。
为什么这么多人对Singleton模式感兴趣? – duffymo
@duffymo:因为有这么多的博客文章和关于它的问题,所以人们得到的印象是重要的 –