Namespaces
Variants

Extensions for concurrency

From cppreference.net

C++并发扩展,ISO/IEC TS 19571:2016,为C++标准库定义了以下新组件:

目录

std::future 的延续功能及其他扩展

定义于头文件 <experimental/future>
(并发TS)
增强延续功能及其他特性的 std::future 版本
(类模板)
(并发TS)
增强延续功能及其他特性的 std::shared_future 版本
(类模板)
(并发TS)
使用 std::experimental::future std::promise 修改版本
(类模板)
(并发TS)
使用 std::experimental::future std::packaged_task 修改版本
(类模板)
(并发TS)
生成一个 future,当所有给定的 future 或 shared_futures 就绪时变为就绪状态
(函数模板)
(并发TS)
生成一个 future,当至少一个给定的 future 或 shared_futures 就绪时变为就绪状态
(函数模板)
生成一个立即就绪并持有给定值的 future
(函数模板)
生成一个立即就绪并持有给定异常的 future
(函数模板)

特性测试宏

定义于头文件 <experimental/future>
__cpp_lib_experimental_future_continuations
值不小于 201505 表示支持 future::then 及其他扩展功能
(宏常量)
定义于头文件 <experimental/latch>
__cpp_lib_experimental_latch
值不小于 201505 表示支持 latch 类型
(宏常量)
定义于头文件 <experimental/barrier>
__cpp_lib_experimental_barrier
值不小于 201505 表示支持 barrier 类型
(宏常量)
定义于头文件 <experimental/atomic>
__cpp_lib_experimental_atomic_smart_pointers
值不小于 201505 表示支持原子智能指针
(宏常量)

已并入 C++20

以下并发技术规范(Concurrency TS)中的组件已被纳入C++20标准。

闩锁与屏障

定义于头文件 <experimental/latch>
(concurrency TS)
单次使用的线程屏障
(类)
定义于头文件 <experimental/barrier>
(concurrency TS)
可重复使用的线程屏障
(类)
(concurrency TS)
具有可自定义完成行为的可重复使用线程屏障
(类)

原子智能指针

这些类模板取代了 shared_ptr 的 原子函数重载

定义于头文件 <experimental/atomic>
(并发技术规范)
std::shared_ptr 的原子版本
(类模板)
(并发技术规范)
std::weak_ptr 的原子版本
(类模板)