先上代码:
#include<mutex>
#include<condition_variable>
#include <iostream>
#include<string>
using namespace std;
void PrintId(int id)
{
cout<<"ID:"<<id<<endl;
}
int main()
{
thread threads[10];
for (int i = 0;i < 10;i++)
{
threads[i] = thread(PrintId,i);
}
for (auto & t : threads)
{
t.join();
}
}
输出:
改一下,加上互斥量mutex:(PrintId(int id)改变,main()不变)
mutex mu;
void PrintId(int id)
{
mu.lock();
cout<<"ID:"<<id<<endl;
mu.unlock();
}
输出: