献上代码:
//
// Created by yangjq on 22-7-7.
//
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
//线程入口函数
void myprint(int inum)
{
cout << "myprint线程开始了,线程编号=" << inum << endl;
cout << "myprint线程结束了,线程编号=" << inum << endl;
return;
}
int main()
{
//创建和等待多个线程
vector<thread> mythreads;
//创建十个线程 每个线程入口函数统一使用myprint
for(int i = 0; i < 10; ++i){
mythreads.push_back(thread(myprint, i));
}
for(int i = 0; i < 10; ++i) {
mythreads[i].join();//等待十个线程汇合;
}
cout << "main end !" << endl;
return 0;
}
结果:
解释:
把十个线程的thread对象都放入容器内,看起来像个thread对象数组,这对我们一次创建大量的线程进行管理提供了极大的便捷,使代码的鲁棒性更高
在结果中,多个线程执行的顺序是乱的,跟操作系统内部对线程的运行调度机制有关。