- 共享可变数据:加锁还是消息传递;锁粒度是否合理
- 锁顺序:多把锁时的获取顺序是否全局一致,避免死锁
- 超时与取消:阻塞操作是否有上限、能否被取消
- 锁内调用外部代码或回调:常见死锁来源
并发缺陷难复现:评审时问清线程模型与不变量,比只读代码更有效。
| 重点追问 | 线程模型、不变量、锁的边界各自是什么 |
|---|---|
| 替代方向 | 不可变数据、串行化、消息传递减少共享 |
并发检查:共享可变状态是否有保护、锁的范围与获取顺序、阻塞操作的超时与取消、回调在锁内执行的死锁风险。
| 重点追问 | 线程模型、不变量、锁的边界各自是什么 |
|---|---|
| 替代方向 | 不可变数据、串行化、消息传递减少共享 |