Namespaces
Variants

std::experimental::flex_barrier:: flex_barrier

From cppreference.net
explicit flex_barrier ( std:: ptrdiff_t num_threads ) ;
(1) (并发TS)
template < class F >
flex_barrier ( std:: ptrdiff_t num_threads, F completion ) ;
(2) (并发TS)
flex_barrier ( const flex_barrier & ) = delete ;
(3) (并发TS)
1) flex_barrier ( num_threads, c ) 具有相同效果,其中 c 是一个可调用对象,其调用返回 -1 且不产生副作用。
2) 构造一个用于 num_threads 个参与线程的 flex_barrier ,使用 completion 作为完成阶段函数。参与线程集合是首批到达同步点的 num_threads 个线程。
3) 复制构造函数被删除; flex_barrier 不可复制。

参数

num_threads - 参与 flex_barrier 的线程数量;必须为非负值
completion - 控制完成阶段的函数对象;必须为无参数且返回类型为 std::ptrdiff_t 可调用对象 ,调用时返回值必须不小于 -1 且不得抛出异常
类型要求
-
F 必须满足 可复制构造 的要求。

注释

如果 num_threads 为零,参与线程集合为空,此时 flex_barrier 仅可被销毁。