第六十五章:临界区与原子操作
TL;DR
- 访问共享资源、不可被同时执行的代码称为临界区。
- 原子操作表现得像不可再分的一步。
正文
更新共享计数器的“读—改—写”是临界区。CPU 提供比较并交换、原子加等原子操作:别的核心无法在它中间看到半完成状态。它们是更高层同步工具的地基。
原子操作只解决一次小动作;若临界区有多步,仍需一种让进入者排队的规则。
思考题
原子加为什么能避免丢失更新?
小结
- 原子性隐藏中间状态,是同步的基本积木。
思考题答案(仅供参考)
每次加法完整完成后,下一次才读取新的结果。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。