1. 本次调试代码用的是codeblocks16.01,需先配置好编译器
进入Setting->Compiler,勾选图示选项,点击确定。
2. 代码段
#include <iostream>
#include <thread>
#include <mutex>
using namespace std;
void Fun_1(); //声明分支线程函数Fun_1()
void Fun_2(); //声明分支线程函数Fun_2()
unsigned int counter = 0; //定义变量counter,通过变量counter的变化来观察线程同步情况
std::mutex mtx; //定义mutex类的对象mtx构造互斥元,互斥占有一个变量,一段时间内仅一个线程可以访问
int main()
{
std::thread thrd_1(Fun_1); //创建线程thrd_1,thrd_1调用函数Fun_1
std::thread thrd_2(Fun_2); //创建线程thrd_2,thrd_2调用函数Fun_2
thrd_1.join(); //join()函数启动子线程而阻塞主线程,子线程会按照开启的先后顺序同步运行,当子线程运行结束后,才会继续运行主线程
thrd_2.join(); //启动线程thrd_2,并且阻塞主线程,等到线程thrd_2运行结束后,再继续运行主线程;
cout<<&