第七十一章:读者与写者(进阶)
TL;DR
- 多个读者可并行,共享数据被写入时必须独占。
正文
读者与写者锁允许许多只读线程一起进入;写者进入时要排除所有读者和其他写者。它提高读多写少场景的并发,却要选择读者优先、写者优先或公平策略。
若总让读者插队,写者会饥饿;总让写者优先,新读者又可能久等。
思考题
两个读者同时读取为什么通常安全?
小结
- 读写锁利用“读取不改变状态”的性质。
思考题答案(仅供参考)
只读操作不互相覆盖共享数据,前提是期间没有写者进入。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。