Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

第六十五章:临界区与原子操作

TL;DR

  • 访问共享资源、不可被同时执行的代码称为临界区。
  • 原子操作表现得像不可再分的一步。

正文

  更新共享计数器的“读—改—写”是临界区。CPU 提供比较并交换、原子加等原子操作:别的核心无法在它中间看到半完成状态。它们是更高层同步工具的地基。

  原子操作只解决一次小动作;若临界区有多步,仍需一种让进入者排队的规则。

思考题

原子加为什么能避免丢失更新?

小结

  • 原子性隐藏中间状态,是同步的基本积木。

思考题答案(仅供参考)

  每次加法完整完成后,下一次才读取新的结果。

协议

本文采用 CC BY-NC-SA 4.0 协议发布。