C++ 11 多线程编程
条评论C++11 新标准中引入了五个头文件来支持多线程编程,它们分别是 <atomic>, <thread>, <mutex>, <condition_variable> 和 <future>。
<thread>:该头文件主要声明了 std::thread 类,另外std::this_thread命名空间也在该头文件中。<mutex>:该头文件主要声明了与互斥量(Mutex)相关的类,包括std::mutex_*一系列类,std::lock_guard,std::unique_lock, 以及其他的类型和函数。<condition_variable>:该头文件主要声明了与条件变量相关的类,包括std::condition_variable和std::condition_variable_any。<future>:该头文件主要声明了std::promise,std::package_task两个 Provider 类,以及std::future和std::shared_future两个 Future 类,另外还有一些与之相关的类型和函数,std::async()函数就声明在此头文件中。<future>头文件中包含了以下几个类和函数:Providers 类:
std::promise,std::package_taskFutures 类:
std::future,std::shared_futureProviders 函数:
std::async()其他类型:
std::future_error,std::future_errc,std::future_status,std::launch
1 | // 初始化时该 std::future 对象处于为 invalid 状态. |
<atomic>:该头文主要声明了两个类,std::atomic和std::atomic_flag,另外还声明了一套 C 风格的原子类型和与 C 兼容的原子操作的函数。
- 本文链接:https://antfaiz5z.github.io/2018/09/19/multithreads/
- 版权声明:The author owns the copyright, please indicate the source reproduced.