首页/开发/代码质量与评审速查/评审检查项:并发与共享状态
代码评审64 条

评审检查项:并发与共享状态

并发检查:共享可变状态是否有保护、锁的范围与获取顺序、阻塞操作的超时与取消、回调在锁内执行的死锁风险。

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

易错点

  • 信任'这个字段只被主线程读写'的口头假设:缺少机制保障
  • 把竞态问题留给测试发现:并发缺陷在 CI 上常常不可复现

数据来源与参考

  • 《Java Concurrency in Practice》(Brian Goetz 等,并发缺陷分类)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌