• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-08-19 14:53 Aet 隐藏边栏 |   抢沙发  9 
文章评分 2 次,平均分 5.0

意义

  1. 设计并发数据结构,意味着多个线程可以并发的访问这个数据结构,线程可对这个数据结构做相同或不同的操作,并且每一个线程都能在自己的自治域中看到该数据结构。且在多线程环境下,无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争。这样的数据结构,称之为“线程安全”的数据结构。
  2. 本质上,是使用互斥量提供互斥特性:在互斥量的保护下,同一时间内只有一个线程可以获取互斥锁。互斥量为了保护数据,显式的阻止了线程对数据结构的并发访问。

基于锁的并发数据结构

线程安全栈

线程安全队列

  1. 使用条件变量实现的线程安全队列

  1. 持有std::shared_ptr<>实例的线程安全队列

  1. 队列实现——单线程版

  1. 带有虚拟节点的队列

  1. 线程安全队列——细粒度锁版

  1. 可上锁和等待的线程安全队列——内部机构及接口

基于锁的复杂结构

线程安全查询表

线程安全链表

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享