
C++并发指南
文章平均质量分 93
丁金金_chihiro_修行
be better boy man
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++11 并发指南九(综合运用 C++11 多线程下生产者消费者模型详解)
前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——,并给出完整的解决方案。原创 2023-01-29 13:07:15 · 4256 阅读 · 0 评论 -
C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。原创 2023-01-29 13:04:50 · 4598 阅读 · 1 评论 -
C++11 并发指南六(atomic 类型详解三 stdatomic (续))
C++11 并发指南六( 类型详解二 std::atomic ) 介绍了基本的原子类型 std::atomic 的用法,本节我会给大家介绍C++11 标准库中的 std::atomic 针对整形(integral)和指针类型的特化版本做了哪些改进。原创 2023-01-29 11:48:07 · 4025 阅读 · 0 评论 -
C++11 并发指南六( 类型详解二 stdatomic )
一节中也提到了 std::atomic 类模板除了基本类型以外,还针对整形和指针类型做了特化。特化的 std::atomic 类型支持更多的操作,如 fetch_add, fetch_sub, fetch_and 等。原创 2023-01-28 23:06:45 · 4284 阅读 · 0 评论 -
C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)
本文介绍 头文件中最简单的原子类型: atomic_flag。atomic_flag 一种简单的原子布尔类型,只支持两种操作,test-and-set 和 clear。std::atomic_flag 构造函数如下:std::atomic_flag 只有默认构造函数,拷贝构造函数已被禁用,因此不能从其他的 std::atomic_flag 对象构造一个新的 std::atomic_flag 对象。如果在初始化时没有明确使用 ATOMIC_FLAG_INIT初始化,那么新创建的 std::atomic_fl原创 2023-01-28 23:05:44 · 4896 阅读 · 0 评论 -
C++11 并发指南五(std condition_variable 条件变量 详解)
头文件主要包含了与条件变量相关的类和函数。相关的类包括 std::condition_variable 和 std::condition_variable_any,还有枚举类型std::cv_status。另外还包括函数 std::notify_all_at_thread_exit(),下面分别介绍一下以上几种类型。std::condition_variable 类介绍std::condition_variable 是条件变量,更多有关条件变量的定义参考维基百原创 2023-01-28 23:05:00 · 6615 阅读 · 0 评论 -
C++11 并发指南四( 详解三 stdfuture & stdshared_future)
前面已经多次提到过 std::future,那么 std::future 究竟是什么呢?简单地说,std::future 可以用来获取异步任务的结果,因此可以把它当成一种简单的线程间同步的手段。std::future 通常由某个 Provider 创建,你可以把 Provider 想象成一个异步任务的提供者,Provider 在某个线程中设置共享状态的值,与该共享状态相关联的 std::future 对象调用 get(通常在另外一个线程中) 获取该值,如果共享状态的标志不为 ready,则调用 std::f原创 2023-01-28 23:03:37 · 3571 阅读 · 0 评论 -
C++11 并发指南四( 详解二 stdpackaged_task 介绍)
上一讲《C++11 并发指南四( 详解一 std::promise 介绍)》主要介绍了 头文件中的 std::promise 类,本文主要介绍 std::packaged_task。转载 2023-01-28 23:02:22 · 4765 阅读 · 0 评论 -
C++11 并发指南三(Lock 详解)
在 《C++11 并发指南三(std::mutex 详解)》一文中我们主要介绍了 C++11 标准中的互斥量(Mutex),并简单介绍了一下两种锁类型。本节将详细介绍一下 C++11 标准的锁类型。C++11 标准为我们提供了两种基本的锁类型,分别如下:另外还提供了几个与锁类型相关的 Tag 类,分别如下:该类型的常量对象 ( 是一个常量对象,定义如下:,一个空的标记类,定义如下:`该类型的常量对象 (是一个常量对象,定义如下:,一个空的标记类,定义如下:该类型的常量对象 ( 是一个常原创 2023-01-28 23:00:53 · 7927 阅读 · 0 评论 -
C++11 并发指南二(thread 详解)
上一篇博客《C++11 并发指南一(C++11 多线程初探)》中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用法。std::thread 在 头文件中声明,因此使用 std::thread 时需要包含 头文件。std::thread 各种构造函数例子如下(返回 native handle。检查线程是否可被 join。原创 2023-01-28 23:00:03 · 4314 阅读 · 0 评论 -
C++11 并发指南一(C++11 多线程初探)
相信 Linux 程序员都用过 Pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高,所以作为一名 C++ 程序员,熟悉 C++11 的多线程编程方式还是很有益处的。C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉。好了,下面来说正题吧 😉。原创 2023-01-28 22:59:10 · 3726 阅读 · 2 评论