C++并发与多线程(7) | 创建多个线程时数据共享的问题
一、创建和等待多个线程
借助vector存放多个线程thread对象,借助vector和它的迭代器实现创建和运行多个线程,代码如下:
#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;
// 创建10个线程,线程入口函数统一使用 myprint
for (int i = 0; i < 10; i++)
{
// 创建线程,并开始执行
mythreads.push_back(thread(myprint, i));
}
for (auto iter = mythreads.begin(); iter != mythreads.end(); ++iter)
{
iter->join();// 等待线程返回
}
cout << "main over" << endl;
return 0;
}