并发数据结构的目的和设计指南理解学习

并发数据结构的目的:

1、设计并发数据结构是为了让多线程并发访问,并且线程可对数据结构做相同或不同的操作

2、多线程环境下, 无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争的数据结构;

3、要为线程提供并发访问数据结构的机会;本质上,在互斥量的保护下同一时间内只有一个线程可以获取锁。互斥量为了保护数据,会显式阻止线程对数据结构的并发访问;(互斥有时会导致串行的结果

4、串行化(serialzation)则是线程轮流访问数据,对数据进行串行访问。

5、需要对数据结构仔细斟酌,确保能进行真正的并发。减少保护区域,减少序列化操作


并发数据结构的设计指南

1、操作在锁的范围内执行,是否可以在锁外;(减少保护区域原则

2、数据结构中的不同互斥量能否保护不同的区域;(正确性,无数据丢失或者损毁原则

3、是否所有操作需要同级别互斥量保护;(细分互斥量保护,减少保护区域原则

4、能否对数据结构进行简单修改,增加并发访问概率;(减少序列化操作原则

参考:

1、《C+±Concurrency-In-Action-2ed》

你可能感兴趣的:(高性能计算,数据结构,学习)