![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 51
All In !!!
《活着》一书中的福贵,就是在生活的锤炼下,从悲痛中醒悟、在失去中成长,最终活得豁达从容。
展开
-
C++中使用【事件】实现线程同步
事件(Event)是WIN32提供的最灵活的线程间同步方式,事件可以处于激发状态(signaled or true)或未激发状态(unsignal or false)。根据状态变迁方式的不同,事件可分为两类:1.手动设置:这种对象只可能用程序手动设置,在需要该事件或者事件发生时,采用SetEvent及ResetEvent来进行设置。2. 自动恢复:一旦事件发生并被处理后,自动恢复到没有事件状态,不需要再次设置。使用”事件”机制应注意以下事项:(1)如果跨进程访问事件,必须对事件命名,在对事件命名的时原创 2021-03-04 10:30:31 · 709 阅读 · 4 评论 -
C++中使用【临界区】实现线程同步
临界区(Critical Section)是一段独占对某些共享资源访问的代码,在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区在使用时以 CRITICAL_SECTION 结构对象保护共享资源,并分别用 EnterCriticalSection() 和 LeaveCriticalSection原创 2021-03-04 09:51:17 · 689 阅读 · 2 评论 -
C++ 多线程 之 互斥锁mutex 的简单使用
示例描述: 通过两个线程将 公共值 i 从 0 加到 10先看一下没加锁的代码及输出:#include<iostream>#include<thread>using namespace std;int i = 0; // 公共数据// 线程1函数void aaa(){ for (int t = 0; t < 5; t++) { i++; cout << "线程1中 i = " << i << endl; }原创 2021-03-03 17:42:59 · 537 阅读 · 2 评论 -
【个人纪录】C++面试总结之二(多线程)
【个人纪录】C++面试总结之二(多线程)由于本人是菜鸟级别,不严谨之处较多,欢迎大佬指正,在学习的路上不断狂奔比如面试官问了一个多线程问题,然后就可以针对多线程这个问题适当展开,不至于问你一个就回答这一个问题,无法完全展示自己技能,适当的展开可以为面试加分哟开始:什么是进程,什么是线程?进程:系统调度和分配的最小单元。线程:CPU调度和分配的最小单元。一个进程至少有一个线程,就是主线程。开发中使用多线程主要是为了提高产品的并发能力!提高运行效率!如何创建线程?C++11中引入了多线程技术,原创 2020-09-29 10:08:27 · 1336 阅读 · 4 评论 -
C++简单的线程创建及使用
C++最简单的线程创建及使用头文件:#include<thread>关键步骤:thread mythread (线程函数, 参数1, 参数2…参数n);mythread.join();上实例代码#include<iostream>#include<thread>using namespace std;// 线程1函数void aaa(int a, int b){ cout << "111" << a <<原创 2021-03-03 16:55:43 · 686 阅读 · 3 评论