重温C++多线程编程
如果你正在阅读本文,那么很有可能你已经使用C++或其他语言进行过多线程编程。本文将从C++的角度回顾多线程编程,通过一个基本的多线程应用程序展开,同时介绍后续会用到的工具。阅读完本文后,你将掌握继续深入学习所需的知识。
1. 涵盖主题
- 利用原生API进行C++基础多线程编程
- 编写基本的Makefile并使用GCC/MinGW
- 使用make编译程序并在命令行执行
2. 开始学习
在学习过程中,我们假设使用基于GCC的工具链(Windows上使用GCC或MinGW)。如果你想使用其他工具链(如clang、MSVC、ICC等),请参考相应的文档以获取兼容的命令。
为了编译示例代码,我们会使用Makefile。对于不熟悉Makefile的人来说,它是一种简单而强大的基于文本的格式,与make工具配合使用,可自动化构建任务,包括编译源代码和调整构建环境。Make工具于1977年首次发布,至今仍是最流行的构建自动化工具之一。
我们假设你熟悉命令行(Bash或类似工具),对于Windows用户,推荐使用MSYS2(Windows上的Bash)。
3. 多线程应用程序
下面我们来看一个基本的多线程应用程序示例:
#include <iostream>
#include <thread>
#include <vector>
#include <mutex>
std::mu