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