void readNum(int &num)
{
int j = 0;
cout << num << "---start "<<endl;
for(int i = 0; i < 1000000; ++i)
{
j+=i;
}
cout << num << " end "<<endl;
}
int main()
{
for (int i = 0; i < 8 ; i = i + 4)
{
thread t(readNum,i);//线程在这一步就已经开始创建线程并执行 假设t用了30ms,t1 20ms
thread t1(readNum,i + 1);
thread t2(readNum,i + 2);
thread t3(readNum,i + 3);
t.join();//等待t运行完,再往下运行。这里需要等待30ms,可能在这期间t1即使执行完,也要等待。
t1.join();//t执行完,等待t1执行完,发现t1已经执行完,所以不用等待。
t2.join();
t3.join();
}
return 0;
}
C++多线程join
最新推荐文章于 2024-04-18 08:16:03 发布