1. Posted on 2024-01-13 | In C++

    简介

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

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

    简介

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

    Read more »
  3. Posted on 2023-12-26 | In C++

    简介

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

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

    简介

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

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

    简介

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

    Read more »

热门文章

  1. slice介绍和使用

    喜欢(521) 浏览(1509)
  2. C++ 类的继承封装和多态

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

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

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

    喜欢(594) 浏览(4505)

最新评论

  1. visual studio配置boost库 secondtonone1:是的,您说的是对的,windows平台要采用msvc方式。
  2. 构造函数 secondtonone1:构造函数是类的基础知识,要着重掌握
  3. 解决博客回复区被脚本注入的问题 secondtonone1:走到现在我忽然明白一个道理,无论工作也好生活也罢,最重要的是开心,即使一份安稳的工作不能给我带来事业上的积累也要合理的舍弃,所以我还是想去做喜欢的方向。
  4. 线程安全的无锁栈 secondtonone1:谢谢支持,如果pop的次数大于push的次数是会让线程处于重试的,这个是测试用例,必须满足push和pop的次数相同,实际情况不会这么使用。栈的设计没有问题。
  5. asio实现http服务器 secondtonone1:我认为IO复用节省了线程资源,不用像传统服务器一样为每个连接单独创立线程,而是统一通过epoll或者iocp通知。
  6. interface应用 secondtonone1:interface是万能类型,但是使用时要转换为实际类型来使用。interface丰富了go的多态特性,也降低了传统面向对象语言的耦合性。
  7. asio多线程模式IOThreadPool secondtonone1:这么优秀吗
  8. 再谈单例模式 secondtonone1:是的,C++11以后返回局部static变量对象能保证线程安全了。
  9. 堆排序 secondtonone1:堆排序非常实用,定时器就是这个原理制作的。
  10. C++ 类的拷贝构造、赋值运算、单例模式 secondtonone1:好的,已修复。
  11. 线程基础 secondtonone1:谢谢,笔误已修复
  12. golang 函数介绍 secondtonone1:函数是go中的一等公民,作为新兴语言,go摒弃了面向对象的一些糟粕,采取接口方式编程,而接口方式编程都是基于函数的,参数为interface,进而达到泛型作用,比如sort排序,只需要传入的参数满足sort所需interface的规定即可,需实现Len, Swap, Less三个方法,只要实现了这三个方法都可以用来做sort排序的参数。
  13. 类和对象 陈宇航:支持!!!!
  14. 使用mongo secondtonone1:mongo操作是程序员必备的基础技能,包括增删改查,以及较为复杂的查询,分组查询,条件查询,模糊查询,文档内查询等,本文结合自己实际开发经验做了整理。
  15. C++ 线程管控 secondtonone1:好的,已修复,写的时候马虎了,谢谢指正。
  16. 面试题汇总(一) secondtonone1:看到网络上经常提问的go的问题,做了一下汇总,结合自己的经验给出的答案,如有纰漏,望指正批评。
  17. Linux环境搭建和编码 恋恋风辰:Linux环境下go的安装比较简单,可以不用设置GOPATH环境变量,后期我们学习go mod 之后就拜托了go文件目录的限制了。
  18. 创建项目和编译 secondtonone1:谢谢支持
  19. slice介绍和使用 恋恋风辰:切片作为引用类型极大的提高了数据传递的效率和性能,但也要注意切片的浅拷贝隐患,算是一把双刃剑,这世间的常态就是在两极之间寻求一种稳定。
  20. 双链表实现LRU算法 secondtonone1:双链表插入和删除节点是本篇的难点,多多练习即可。

B站

个人微信

个人公众号