一、前言
本文接上文 【学习笔记】C++并发与多线程笔记二 的内容,主要包含创建多个线程、数据共享问题分析和案例代码。
二、创建和等待多个线程
这里创建十个线程,并且使用同一个 入口函数 my_thread()
,代码如下:
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
void my_thread(int num)
{
cout << "my thread start, num = " << num << endl;
/* 线程代码 */
cout << "my thread end, num = " << num << endl;
return;
}
int main()
{
vector<thread> m_threads;
/* 创建10个线程,线程回调统一用 my_thread() */
for (int i = 0; i < 10; i++)
{
m_threads.push_back(thread(my_thread, i)); /* 创建线程并开始执行 */
}
for (auto iter = m_threads.begin(); iter != m_threads.end(); ++iter)
{
iter->join(); /* 等待线程结束 */
}
cout << "Hello World!" << endl;
return