辛格尔顿溶液
回答
在问题中引用的代码基本上是这样的:
class Singleton {
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}
这是线程安全的,因为实例更是不可以偷懒初始化,而是被实例化一次上课的时候被加载。
类加载器强制它自己的同步来保证类初始化是线程安全的。
+1我更喜欢'枚举Singleton',因为它更简单恕我直言。 – 2013-03-17 00:22:58
@PeterLawrey我认为枚举单例模式是滥用枚举(虽然它工作)。我更喜欢静态的内部类模式,它提供了懒惰单元加线程安全性,而不需要任何同步 - 这是神奇的。 – Bohemian 2013-03-17 00:45:59
您应该使'instance'最终确保对所有线程的最新可见性。 – 2013-03-17 01:15:17
- 1. 辛格尔顿ExtJs4
- 2. jQuery的辛格尔顿
- 3. 辛格尔顿Imlementation类
- 4. 什么是辛格尔顿
- 5. 辛格尔顿 - 有道
- 6. Unity3D辛格尔顿用MonoBehavior
- 7. 辛格尔顿NServiceBus佐贺
- 8. PHP OOP辛格尔顿
- 9. 辛格尔顿实例
- 10. Ninject辛格尔顿厂
- 11. 辛格尔顿问题
- 12. 辛格尔顿与JBoss SEAM
- 13. 辛格尔顿对象和Java servlet
- 14. 传递对象与辛格尔顿
- 15. 辛格尔顿工厂在PHP
- 16. 辛格尔顿C++模板类
- 17. PHP类父实例(辛格尔顿)
- 18. 辛格尔顿在Java参数再次
- 19. 辛格尔顿的NSMutableDictionary和plist中
- 20. 辛格尔顿和单元测试
- 21. 使用数据管理辛格尔顿
- 22. 访问播放辛格尔顿方法
- 23. 纯静态类VS辛格尔顿
- 24. 辛格尔顿对象处置
- 25. 春辛格尔顿线程安全
- 26. 辛格尔顿在科特林
- 27. 斯威夫特3 - 辛格尔顿
- 28. 辛格尔顿Implemenatatio链接错误
- 29. 辛格尔顿继承链接错误
- 30. 的Java的InvocationHandler和辛格尔顿
'getInstance()'是该类的'static'-context中唯一可用的方法。对于它的执行,静态初始化(因此创建对象)将被执行。因此,在调用静态方法之前不会创建任何对象。 – 2013-03-17 00:15:27