4.1 设计线程安全的类

在设计线程安全类的过程中,需要包含以下三个基本要素:

  • 找出构成对象状态的所有变量。
  • 找出约束状态变量的不变性条件。
  • 建立对象状态的并发访问管理策略。

4.1.1 收集同步需求

4.1.2 依赖状态的操作

在某个操作中包含有基于状态的先验条件

4.1.3 状态的所有权

4.2 实例封闭

4.2.1 Java监视器模式

把对象的所有可变状态都封装起来,并由对象自己的内置锁来保护

4.3 线程安全性的委托

4.3.2 独立的状态变量

4.3.3 当委托失效时

4.3.4 发布底层的状态变量

4.4 在现有的线程安全类中添加功能

4.4.1 客户端加锁机制

4.4.2 组合