--- 对 Java Concurrency In Practice 的读书笔记
设计前的准备:
-
确定对象状态由哪些变量构成
-
确定限制变量的不变约束
-
定制访问对象状态的策略
设计时应当遵循的规则:
- 若操作过程可能出现非法状态转换,则该操作必须是原子的
- 若存在某些非法状态,则必须封装该状态的状态变量,以免客户将对象置于非法状态
- 若类的状态变量独立,并且委托给了线程安全的对象,那么该类也是线程安全的
- 若不变约束涉及多个变量时,对这些变量的操作应该被锁保护
- 客户端加锁应当获得正确的锁
- java监视器模式可以将非线程安全的类变为线程安全的类
- 应该对创建的类添加关于并发的文档