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

    简介

    前文介绍了如何基于锁实现线程安全的栈和队列结构,以及实现线程安全的查找表,但是我们上次的查找表是基于list实现的,对于锁的精度控制的不是很准确,提及了接下来会介绍精细控制的链表,用来替换查找表中的链表。这一节我们就介绍如何通过锁控制链表访问的精度。

    Read more »
  2. Posted on 2023-12-02 | In C++

    简介

    前文介绍了如何通过内存顺序实现内存模型,本文基于前文的基础,利用内存顺序和内存模型的知识,带着大家探索无锁并发的应用,主要是通过无锁队列的实现来让大家熟悉无锁并发的实现方式。

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

    简介

    前文介绍了线程安全的队列和栈,本文继续介绍线程安全的查找结构,实现一个类似线程安全的map结构,但是map基于红黑树实现,假设我们要增加或者删除节点,设计思路是依次要删除或增加节点的父节点,然后修改子节点数据 。尽管这种思路可行,但是难度较大,红黑树节点的插入要修改多个节点的关系。另外加锁的流程也是锁父节点,再锁子节点,尽管在处理子节点时我们已经处理完父节点,可以对父节点解锁,继续对子节点加锁,这种情况锁的粒度也不是很精细,考虑用散列表实现。

    Read more »
  4. Posted on 2023-11-22 | In C++

    拷贝构造函数

    一个类可以不定义拷贝构造函数,系统会默认提供一个拷贝构造函数,叫做合成拷贝构造函数。与默认构造函数不同的是,即使我们定义了其他构造函数,系统也会为我们生成合成拷贝构造函数。合成的拷贝构造函数会将其参数的成员逐个拷贝到正在创建的对象中。编译器从给定对象中依次将每个非static成员拷贝到正在创建的对象中。对类类型的成员,会使用其拷贝构造函数来拷贝;内置类型的成员则直接拷贝。
    为了方便举例,我们手动实现一个mystring类

    Read more »
  5. Posted on 2023-11-19 | In C++

    简介

    本文介绍如何通过互斥锁和条件变量等并发机制实现线程安全的队列和栈容器。

    Read more »
  6. Posted on 2023-11-12 | In C++

    简介

    前文我们通过原子操作实战实现了无锁队列,今天完善一下无锁的原子操作剩余的知识,包括Relaese和Acquire内存序在什么情况下是存在危险的,以及我们可以利用栅栏机制实现同步等等。

    Read more »
  7. Posted on 2023-10-30 | In C++

    简介

    本文介绍C++ 并发三剑客, future, promise以及async用法。这三个类是实现并发技术的关键,接下来详细介绍一下

    Read more »
  8. Posted on 2023-10-28 | In C++

    前情回顾

    前文我们介绍了六种内存顺序,以及三种内存模型,本文通过代码示例讲解六种内存顺序使用方法,并实现相应的内存模型。

    Read more »
  9. Posted on 2023-10-26 | In C++

    简介

    本文介绍C++ 内存模型相关知识,包含几种常见的内存访问策略。

    Read more »
  10. Posted on 2023-10-19 | In C++

    简介

    本文件汇总粉丝提出的关于并发的几个问题,做个备份,方便大家理解和学习。

    Read more »

热门文章

  1. 解密定时器的实现细节

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

    喜欢(588) 浏览(1859)
  3. Linux环境搭建和编码

    喜欢(594) 浏览(3732)
  4. windows环境搭建和vscode配置

    喜欢(587) 浏览(1496)
  5. slice介绍和使用

    喜欢(521) 浏览(1448)

最新评论

  1. slice介绍和使用 恋恋风辰:切片作为引用类型极大的提高了数据传递的效率和性能,但也要注意切片的浅拷贝隐患,算是一把双刃剑,这世间的常态就是在两极之间寻求一种稳定。
  2. Linux环境搭建和编码 恋恋风辰:Linux环境下go的安装比较简单,可以不用设置GOPATH环境变量,后期我们学习go mod 之后就拜托了go文件目录的限制了。
  3. 构造函数 secondtonone1:构造函数是类的基础知识,要着重掌握
  4. visual studio配置boost库 Mr.test:visual studio时 应该使用  \b2.exe toolset=msvc”  🤡
  5. 类和对象 陈宇航:支持!!!!

个人公众号

个人微信