几个重点:
1. 对可变状态,共享状态要特别关注
2. 尽可能将域改成final,可以减少状态变量的数量,减少并发时的难度
3. final,或者事实不可变对象都是线程安全的
4. 利用临时变量,将状态封装在线程中,可以减少并发风险
5. 每个状态变量都要有锁来保护。这个锁主要是内存可见性和原子性
6. 受同一个状态变量影响到操作,要用同一个锁。
7. 复合操作,要注意其原子性。这可以用锁来实现
8. 在设计中,文档要详细说明是否是线程安全的。同步策略文档化
几个重点:
1. 对可变状态,共享状态要特别关注
2. 尽可能将域改成final,可以减少状态变量的数量,减少并发时的难度
3. final,或者事实不可变对象都是线程安全的
4. 利用临时变量,将状态封装在线程中,可以减少并发风险
5. 每个状态变量都要有锁来保护。这个锁主要是内存可见性和原子性
6. 受同一个状态变量影响到操作,要用同一个锁。
7. 复合操作,要注意其原子性。这可以用锁来实现
8. 在设计中,文档要详细说明是否是线程安全的。同步策略文档化