std::barrier<CompletionFunction>::barrier

来自cppreference.com
< cpp‎ | thread‎ | barrier
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
原子操作的自由函数
原子标志的自由函数
内存序
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
constexpr explicit barrier( std::ptrdiff_t expected,
                            CompletionFunction f = CompletionFunction());
(1) (C++20 起)
barrier( const barrier & ) = delete;
(2) (C++20 起)
1) 设置每个阶段的初始期待计数及首阶段的当前期待计数为 expected ,以 std::move(f) 初始化完成函数对象,然后开始第一阶段。若 expected 为负或大于 max() 则行为未定义。
2) 复制构造函数被删除。 barrier 既不可复制亦不可移动。

参数

expected - 期待计数的初值
f - 要在在阶段完成步骤调用的完成函数对象

异常

1) 任何 CompletionFunction 的移动构造函数所抛的异常。

注解

容许 expected 为零。然而在这种 barrier 上调用析构函数以外的任何非静态成员函数导致未定义行为。换言之,这种 barrier 只能被销毁。