《操作系统导论》第 29 章:基于锁的并发数据结构 - 深度知识架构

1. 核心矛盾 (The Crucial Problem)

对于特定的数据结构,如何通过精妙的加锁方式,在保证数据结构功能绝对正确(线程安全)的前提下,实现极高的并发访问性能(扩展性)?

2. 核心概念 (Core Concepts)

3. 逻辑演进 (Logical Evolution)

为了让不同的数据结构在并发下既安全又快速,计算机科学家针对每种结构进行了如下推演:

4. 机制与策略 (Mechanisms vs. Policies)

5. 设计折衷 (Design Trade-offs)

6. 关键洞察 (Key Insights)


导师的下一步建议: 在本章中,我们终于用锁为常见的数据结构穿上了“并发防弹衣”。但你可能注意到了,我们在操作队列时有一个隐藏的问题尚未解决:如果一个线程想出队,但此时队列是空的,它该怎么办? 它总不能一直死循环(自旋)占用着 CPU 来检查队列什么时候有数据吧?

为了解决这种”一个线程需要等待另一个线程完成某事”的协同问题,我们需要学习并发的第二大神器——条件变量 (Condition Variables)

MOC · 下一章:Ch30 条件变量