第一次面试遇到的题,绷不住,不会写多线程
#include <iostream>
#include <thread>
using namespace std;
int num=0,r=100;
std::mutex mtx;
std::condition_variable cv;
void print(int flag)
{
while(num<=r){
unique_lock<mutex> lck(mtx);
while(flag==(num&1)) cv.wait(lck);
if(num<=r) cout <<num<< endl;
num++;
cv.notify_all();
}
}
int main()
{
thread t1(print,1);
thread t2(print,0);
t1.join();
t2.join();
return 0;
}