3.安全发布对象
本章内容
1.发布对象与对象逸出
2.安全发布的四个方法
一、发布对象和对象逸出
发布对象:使一个对象能够被当前范围之外的代码所使用。
对象逸出:是一种错误的发布,之当一个对象还没有构造完成时,就对其他线程可见
二、安全发布的四种方法
1.在静态初始化函数中初始化一个对象引用。
2.将对象的引用保存在volatile类型域或者AtomicReference对象中。
3.将对象的引用保存在某个正确构造对象的final类型域中。
4.将对象的引用保存在一个由锁保护的域中。
举例:单例模式
懒汉式:指全局的单例实例在第一次使用时构建。
饿汉式:指全局的单例实例在类加载时构建。
①懒汉式1:静态初始化函数
②懒汉式2:synchronized
③懒汉式3:双重同步锁
④懒汉式4:volatile禁止重排序
⑤饿汉式1
⑥饿汉式2
⑦枚举