【发布时间】:2013-02-09 17:03:24
【问题描述】:
摘自《Java concurrency in practice》一书:
为了安全地发布对象, 引用对象和 对象的状态必须对 其他线程同时进行。一种 正确构造的对象可以是 安全发布者:
从静态初始化器初始化对象引用
将对其的引用存储到 volatile 字段或 AtomicReference 中
将对它的引用存储到正确构造的最终字段中 对象
将对它的引用存储到由 a
正确保护的字段中 锁。
我的问题是:
- 要点 2 和 3 之间有什么区别?我对
volatile方法和final方法在对象的安全发布方面的区别感兴趣。 - 他在第 3 点中所说的 正确构造对象的最终字段 是什么意思?在开始项目符号点之前,作者已经提到他们正在谈论一个正确构造的对象(我认为这不会让
this引用 escape )。但是为什么他们又一次提到了正确构造的对象?
【问题讨论】: