并发扩展
来自 cppreference.com
< cpp | experimental
C++ 并发扩展,ISO/IEC TS 19571:2016,为 C++ 标准库定义了以下新组件
内容 |
[编辑] std::future 的延续和其他扩展
在头文件
<experimental/future> 中定义 | |
(并发 TS) |
一个 std::future 的版本,它增强了延续和其他功能 (类模板) |
(并发 TS) |
一个 std::shared_future 的版本,它增强了延续和其他功能 (类模板) |
(并发 TS) |
一个 std::promise 的修改版本,它使用 std::experimental::future (类模板) |
(并发 TS) |
一个 std::packaged_task 的修改版本,它使用 std::experimental::future (类模板) |
(并发 TS) |
生成一个 future,当所有给定的 futures 或 shared_futures 都就绪时,它将就绪(函数模板) |
(并发 TS) |
生成一个 future,当给定的 futures 或 shared_futures 中至少有一个就绪时,它将就绪 (函数模板) |
(并发 TS) |
生成一个立即就绪并保存给定值的 future (函数模板) |
(并发 TS) |
生成一个立即就绪并保存给定异常的 future (函数模板) |
[编辑] 功能测试宏
在头文件
<experimental/future> 中定义 | |
__cpp_lib_experimental_future_continuations |
至少为 201505 的值表示支持 future::then 和其他扩展 (宏常量) |
在头文件
<experimental/latch> 中定义 | |
__cpp_lib_experimental_latch |
至少为 201505 的值表示支持闩锁类型 (宏常量) |
在头文件
<experimental/barrier> 中定义 | |
__cpp_lib_experimental_barrier |
至少为 201505 的值表示支持屏障类型 (宏常量) |
在头文件
<experimental/atomic> 中定义 | |
__cpp_lib_experimental_atomic_smart_pointers |
至少为 201505 的值表示支持原子智能指针 (宏常量) |
[编辑] 合并到 C++20
并发 TS 的以下组件已被采用到 C++20 标准中。
[编辑] 闩锁和屏障
在头文件
<experimental/latch> 中定义 | |
(并发 TS) |
一次性线程屏障 (类) |
在头文件
<experimental/barrier> 中定义 | |
(并发 TS) |
可重用线程屏障 (类) |
(并发 TS) |
可重用线程屏障,具有可自定义的完成行为 (类) |
[编辑] 原子智能指针
这些类模板替换了 shared_ptr 的 原子函数重载
在头文件
<experimental/atomic> 中定义 | |
(并发 TS) |
std::shared_ptr 的原子版本 (类模板) |
(并发 TS) |
std::weak_ptr 的原子版本 (类模板) |