std::experimental::flex_barrier:: flex_barrier
From cppreference.net
<
cpp
|
experimental
|
flex barrier
|
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 仅可被销毁。