单例模式和安全发布对象
来源:4-2 安全发布对象-四种方法-1
![](http://img1.sycdn.imooc.com/user/5b8cdce3000166dd02000235-100-100.jpg)
慕虎1287928
2019-09-24
什么叫做安全发布对象,是说对象不会逸出吗?
为什么单例模式可以保证对象是安全发布的?
写回答
1回答
-
Jimin
2019-09-24
你好,对象逸出属于不安全的发布对象,至于为什么说单例属于安全发布对象,说的直白一点,没有在构造完成之前暴露出this引用,再看一下安全发布对象常见手段:
1、在静态初始化函数中初始化一个对象引用
2、将对象的引用保存到volatile类型域或者AtomicReference对象中
3、将对象的引用保存到某个正确构造对象的final类型域中
4、将对象的引用保存到一个由锁保护的域中
这些手段几乎每一种都有一种单例的表现形式能对应上,而且对于一个没问题的单例实现而言,是能保证线程安全的,这时就肯定是安全发布的。022019-09-25
相似问题