C++ 并发编程指南
文章平均质量分 81
C++ 并发编程指南
爱吃红萝卜的小白兔
这个作者很懒,什么都没留下…
展开
-
C++ 并发编程指南(13)线程池原理与实践 | 13.3、源码实现
【代码】C++ 并发编程指南(13)线程池原理与实践 | 13.3、源码实现。原创 2024-06-04 17:50:47 · 137 阅读 · 0 评论 -
C++ 并发编程指南(13)线程池原理与实践 | 13.2、关键组件实现
文章目录一、关键组件实现前言:一、关键组件实现原创 2024-06-04 17:47:07 · 234 阅读 · 0 评论 -
C++ 并发编程指南(13)线程池原理与实践 | 13.1、实现原理
【代码】C++ 并发编程指南(12)线程池原理与实践。原创 2024-06-03 22:17:19 · 209 阅读 · 0 评论 -
C++ 并发编程指南(12)线程中断
在多线程编程中,有时需要在某些条件下停止或暂停一个线程的执行。C++标准库并没有提供一个直接的方法来实现线程中断,但可以通过一些技巧和设计模式来实现类似的功能。本文将介绍如何在C++中使用条件变量和原子操作来实现线程中断。原创 2024-05-21 22:00:41 · 460 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.7、使用栅栏实现同步
C++多线程中的。原创 2024-05-16 22:49:10 · 339 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.6、计算机内存结构
计算机内存结构是计算机系统中的核心组成部分,其性能直接影响到计算机的运行效率和数据处理能力。通过对内存的基本组成、类型、结构层次以及局部性原理等概念的深入剖析,可以更好地理解计算机内存的工作原理和重要性。原创 2024-05-14 23:11:47 · 1006 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.5、内存模型
C++ 11标准中最重要的特性之一,是大多数程序员都不会关注的东西。它并不是新的语法特性,也不是新的类库功能,而是新的多线程感知内存模型。本文介绍的内存模型是指多线程编程方面,而非对象的内存布局与内存对齐之类。原创 2024-04-17 22:57:33 · 397 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.4、通过内存序实现顺序模型
前文介绍了六种内存顺序,以及三种内存模型,本文通过代码示例讲解六种内存顺序使用方法,并实现相应的内存模型。原创 2024-05-14 23:01:36 · 819 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.3、原子变量与内存序
在多线程编程中,当多个线程试图同时访问和修改共享数据时,就需要考虑数据的一致性和可见性问题。C++的原子操作提供了对共享数据的无锁访问,但仅仅依赖原子操作并不足以完全解决所有同步问题。这时,原子内存序的概念就显得尤为重要。原子内存序定义了原子操作之间的顺序以及这些操作与程序其他部分的交互方式。它影响了编译器优化、指令重排序以及处理器缓存的行为。选择合适的内存序对于实现高效且正确的多线程程序至关重要。原创 2024-04-17 20:01:36 · 295 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.2、atomic_flag
C++ atomic_flag是C++标准库中的一个原子标志类,用于实现线程间的同步和互斥。它是C++11引入的,提供了一种轻量级的原子操作方式,可以用于实现简单的互斥锁和条件变量等功能。原创 2024-04-17 19:51:53 · 510 阅读 · 0 评论 -
C++ 并发编程指南(11)原子操作 | 11.1、基本概念
C++中的原子操作提供了一种在多线程环境中安全地访问和修改共享数据的方式。通过使用std::atomic模板类和相关函数,我们可以实现各种基本和复合类型的原子操作。在实际编程中,原子操作被广泛应用于实现计数器、标志位、并发数据结构和算法等场景。通过合理地使用原子操作,我们可以有效地避免数据竞争和不一致性的问题,从而提高多线程程序的正确性和性能。原创 2024-03-17 19:24:35 · 967 阅读 · 0 评论 -
C++ 并发编程指南(10)线程间通信
在多线程编程中,线程间通信(Inter-Thread Communication,简称ITC)是不可或缺的一部分,它使得不同的线程能够交换信息、协作完成任务。C++作为一种功能强大的编程语言,提供了多种机制来实现线程间的通信。下面我们将详细讨论这些机制。原创 2024-03-11 17:40:24 · 2803 阅读 · 1 评论 -
C++ 并发编程指南(9)条件变量
C++中的条件变量是实现线程同步的强大工具。通过合理使用条件变量和互斥锁,我们可以有效地控制多个线程对共享资源的访问,确保数据的一致性和正确性。然而,在使用条件变量时,我们也需要注意避免虚假唤醒、死锁和异常处理等问题。原创 2024-03-11 12:16:24 · 989 阅读 · 0 评论 -
C++ 并发编程指南(8)future与promise
条件变量在多个线程等待同一个事件的场合比较有用,如果等待线程只打算等待一次,那么当条件为。原创 2024-01-30 22:29:10 · 208 阅读 · 0 评论 -
C++ 并发编程指南(7)使用std::lock_guard与std::unique_lock管理锁
在C++的多线程编程中,互斥锁的管理是确保数据一致性和线程同步的关键。std::unique_lock和std::lock_guard是两种用于管理互斥锁的智能锁对象,它们提供了便捷且安全的方式来处理并发访问共享资源的问题。下面我们来详细探讨这两种机制。原创 2024-03-04 13:54:28 · 1090 阅读 · 0 评论 -
C++ 并发编程指南(6)锁机制详解
文章目录一、锁一、锁原创 2024-02-29 23:17:06 · 166 阅读 · 0 评论 -
C++ 并发编程指南(5)线程状态及切换
C++中的线程状态及切换是操作系统和C++线程库(如POSIX线程或C++11及之后的。原创 2024-05-30 22:50:39 · 1006 阅读 · 0 评论 -
C++ 并发编程指南(4)线程同步
文章目录一、线程间共享数据1、线程间共享数据的问题2、使用互斥元保护共享数据一、线程间共享数据1、线程间共享数据的问题2、使用互斥元保护共享数据原创 2024-02-29 23:02:40 · 188 阅读 · 0 评论 -
C++ 并发编程指南(3)线程安全
解释一线程安全是指代码在多线程环境下运行时的安全性。如果一个类或者函数在多线程环境中被安全地调用,且其内部状态和结果不会因为多线程的并发访问而遭到破坏,那么我们就说这个类或者函数是线程安全的,一句话讲就是多线程可以安全访问临界区资源,就是线程安全。解释二多线程同时对内存中的一共享变量操作,最终这个共享变量的值是正确的,那么就是线程安全,反之就是线程不安全。原创 2024-05-16 22:50:17 · 956 阅读 · 0 评论 -
C++ 并发编程指南(2)管理线程
线程是通过构造对象来开始的,该对象指定了线程上要运行的任务,可以与。原创 2024-01-13 23:24:55 · 453 阅读 · 0 评论 -
C++ 并发编程指南(1)探索并发世界
并发是指两个或更多独立的活动同时发生,计算机中的并发指的是,在单个系统里同时执行多个独立的活动。原创 2024-01-13 21:04:02 · 511 阅读 · 0 评论