第6章 设计基于锁的并发数据结构
多线程数据并发访问方法:
1. 第三章,第四章 的技术
2. 设计一个可以同时访问的数据结构 ———— 本章内容
6.1 为并发设计的含义是什么
最基本的层面: 数据结构式线程安排的
实际上: 远远不只是并发问题
序列化
为并发设计数据结构的准则
两方面: a. 存取安全
b. 允许真正的并发存取
使用数据结构的条件也很重要:
最小化必然发生的序列化,并且能够最大限度的实现并发性。
6.2基于锁的并发数据结构
关键:确保存取数据是要锁住正确的互斥元,并且确保锁的时间最小化。
6.2.1 使用锁的线程安全栈
6.2.2 使用锁的线程安全队列
6.2.3 使用细粒度锁和条件变量的的线程安全队列
无界队列 ————> 有界队列超过本书范围
栈和队列都比较简单,数据结构越复杂,导致更多的并发机会
6.3 设计更复杂的基于锁的数据结构
6.3.1 使用锁的线程安全查找表
6.3.1 使用锁的线程安全链表
6.4 小结
.
--
修改:CyberPunker FROM 203.218.252.*
FROM 203.218.252.*