1. Posted on 2023-12-26 | In C++

    简介

    前文我们通过锁的互斥机制实现了并发安全的栈,队列,查找表,以及链表等结构。接下来本文介绍通过无锁的原子变量的方式实现对应的容器,我们这一篇先从无锁的方式实现栈讲起。

    Read more »
  2. Posted on 2024-01-13 | In C++

    简介

    本节介绍C++线程管控,包括移交线程的归属权,线程并发数量控制以及获取线程id等基本操作。

    Read more »
  3. Posted on 2024-01-09 | In C++

    简介

    前文介绍了无锁并发栈的设计,本文继续介绍无锁队列的设计。队列和栈容器的难点稍微不同,因为对于队列结构,push()和pop()分别访问其不同部分,而在栈容器上,这两项操作都访问头节点,所以两种数据结构所需的同步操作相异。如果某线程在队列一端做出改动,而另一线程同时访问队列另一端,代码就要保证前者的改动过程能正确地为后者所见

    Read more »
  4. Posted on 2024-01-13 | In C++

    简介

    前面的文章介绍了无锁并发的相关知识,涵盖了无锁队列,无锁栈,环状无锁队列的设计,本文总结下无锁并发设计的几个设计规则,以供读者自己编写无锁代码时可以起到抛砖引玉的效果。

    Read more »
  5. Posted on 2024-01-11 | In C++

    简介

    前文我们通过引用计数实现了无锁并发的栈结构,但是对于原子变量的读,写以及读改写操作默认采用的是memory_order_seq_cst,memory_order_seq_cst为全局顺序模型,也就是所有线程看到的执行顺序一致,但是这种模型对性能消耗较大,本文在之前实现的无锁栈的基础上介绍如何通过更为宽松的模型提升性能。先带着大家复习一下内存模型相关知识

    Read more »

热门文章

  1. C++ 类的继承封装和多态

    喜欢(588) 浏览(1965)
  2. windows环境搭建和vscode配置

    喜欢(587) 浏览(1534)
  3. 解密定时器的实现细节

    喜欢(566) 浏览(1382)
  4. Linux环境搭建和编码

    喜欢(594) 浏览(4060)
  5. slice介绍和使用

    喜欢(521) 浏览(1479)

最新评论

  1. 使用mongo secondtonone1:mongo操作是程序员必备的基础技能,包括增删改查,以及较为复杂的查询,分组查询,条件查询,模糊查询,文档内查询等,本文结合自己实际开发经验做了整理。
  2. 创建项目和编译 secondtonone1:谢谢支持
  3. 构造函数 secondtonone1:构造函数是类的基础知识,要着重掌握
  4. interface应用 secondtonone1:interface是万能类型,但是使用时要转换为实际类型来使用。interface丰富了go的多态特性,也降低了传统面向对象语言的耦合性。
  5. 堆排序 secondtonone1:堆排序非常实用,定时器就是这个原理制作的。
  6. 线程基础 secondtonone1:谢谢,笔误已修复
  7. 解决博客回复区被脚本注入的问题 secondtonone1:走到现在我忽然明白一个道理,无论工作也好生活也罢,最重要的是开心,即使一份安稳的工作不能给我带来事业上的积累也要合理的舍弃,所以我还是想去做喜欢的方向。
  8. 线程安全的无锁栈 secondtonone1:谢谢支持,如果pop的次数大于push的次数是会让线程处于重试的,这个是测试用例,必须满足push和pop的次数相同,实际情况不会这么使用。栈的设计没有问题。

B站

个人微信

个人公众号