#include<iostream>
#include<unistd.h>
#include<thread>
#include<mutex>
using namespace std;
void execute(mutex &m,char &i,char t)
{
for(;true;m.lock(),cout<<"线程"<<t<<"执行中,输入:",cin>>i,cout<<"线程"<<t<<"执行",i==t?cout<<"成功":cout<<"失败",cout<<"。"<<endl,m.unlock(),sleep(1));
}
int main(int argc,char *argv[])
{
mutex m;
char i;
thread t([&m,&i]()
{
execute(m,i,'t');
}),u([&m,&i]()
{
execute(m,i,'u');
}),v([&m,&i]()
{
execute(m,i,'v');
});
t.join();
u.join();
v.join();
return 0;
}
https://blog.csdn.net/qq_39326472/article/details/95459107