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++11)  
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
未来体
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
(C++26)
风险指针





原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
内存定序
原子操作的自由函数
原子标志的自由函数
 
 
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 只能被销毁。