#include <iostream>
#include <mutex>
#include <thread>
#include <condition_variable>
using namespace std;
int LOOP = 10;//执行次数
int flag = 0;//0 1 2 切换线程
mutex m;//互斥量
condition_variable cv;//用于通知全局
void fun(int id)
{
for (int i = 0; i < LOOP; i++)
{
unique_lock<mutex>ulk(m);//设置锁定
while ((id-65)!=flag)
{
cv.wait(ulk);
}
cout << (char)id ;//转换
flag = (flag + 1) % 4;
cv.notify_all();
}
}
void main()
{
thread t1(fun, 65);//A
thread t2(fun, 66);//B
thread t3(fun, 67);//C
thread t4(fun, 68);//D
t1.join();
t2.join();
t3.join();
t4.join();
cin.get();
}
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接