#include<iostream>
#include<thread>
#include<vector>
using namespace std;
//线程入口函数
void myprint(int num)
{
cout << "线程开始了:" <<num<< endl;
cout << "线程结束了" << num<<endl;
return;
}
int main()
{
//a:多个线程的执行顺序是混乱的,跟操作系统内部对线程的运算调度机制有关
//b:主线程等待所有子线程运行结束,主线程最后结束(join)
//c:我们将thread拖拽到容器内进行管理,看起来像一个thread对象数组,这对我们一次性创建大量线程有帮助
vector<thread>mythreads;//创建多个线程
for (int i = 0; i < 10; i++)
{
mythreads.push_back(thread(myprint,i));
}
for (int i = 0; i < 10; i++)
{
mythreads[i].join();
}
/*for (auto iter = mythreads.begin(); iter != mythreads.end(); iter++)进程阻塞
{
iter->join();
}*/
cout << "主线程结束" << endl;
system("pause");
return 0;
}
C++多线程开发(第三讲)创建多个线程
于 2023-09-13 15:03:19 首次发布