
C++多线程
文章平均质量分 91
C+G
也就那样
展开
-
[C++多线程]1.3-多线程控制的另一种姿势-条件变量(condition_variable), 信号量(semaphore)
文章目录条件变量(C++11)为什么要引入条件变量条件变量的用法条件变量引发的虚假唤醒信号量(C++20)std::binary_semaphore使用counting_semaphore使用条件变量(C++11)为什么要引入条件变量我们先来看看一个由互斥量加锁构成的生产者消费者模型://// Created by Alone on 2022-3-27.//#include <iostream>#include <mutex>#include <deque&g原创 2022-03-27 17:38:49 · 1451 阅读 · 0 评论 -
【C++多线程】1.2-线程安全的保证——互斥量mutex(锁)和原子变量atomic
文章目录资源竞争引发的线程安全问题如何解决资源竞争问题?法一:加互斥锁mutex(性能较低)法二:转用原子变量(效率更高)三个常用的互斥量装饰器std::lock_guard (C++11)死锁的产生利用std::lock批量上锁防止死锁发生std::unique_lock (C++11)std::scoped_lock(C++17)资源竞争引发的线程安全问题有如下的代码:#include<thread>#include<iostream>int globalVaria原创 2022-03-02 22:27:25 · 2186 阅读 · 2 评论 -
【C++多线程】1.1线程的创建
文章目录创建线程(thread)分析程序报错原因理解线程的创建运行过程解决报错的方式:join()和detach方法一:调用join()方法进行合并方法二:调用detach()方法分离线程联系创建线程(thread)分析程序报错原因头文件:include<thread>理解线程的创建运行过程你可以试着运行下面这段代码,你会发现,他肯定会报错!#include<thread>#include<iostream>void task(){ std原创 2022-03-02 20:33:53 · 653 阅读 · 0 评论