首先推荐一个博客:
C++11 并发指南系列(256code)
本系列很多参考该专栏
之前在Linux下,一直使用 Pthread 使用多线程变成。C++11 新标准中引入了五个头文件来支持多线程编程,他们分别是<atomic> , <thread>, <mutex>, <condition_variable> 和 <future>。这样,你就可以在语言层面编写多线程程序了,直接的好处就是代码的可移植性得到了提高。
<atomic>:该头文主要声明了两个类,std::atomic 和 std::atomic_flag,另外还声明了一套 C 风格的原子类型和与 C 兼容的原子操作的函数。
<thread>:该头文件主要声明了 std::thread 类,另外 std::this_thread 命名空间也在该头文件中。
<mutex>:该头文件主要声明了与互斥量(mutex)相关的类,包括 std::mutex 系列类,std::lock_guard,std::unique_lock以及其他的类型和函数。