std::experimental::flex_barrier:: flex_barrier
From cppreference.net
<
cpp
|
experimental
|
flex barrier
|
explicit
flex_barrier
(
std::
ptrdiff_t
num_threads
)
;
|
(1) | (concurrency TS) |
|
template
<
class
F
>
flex_barrier ( std:: ptrdiff_t num_threads, F completion ) ; |
(2) | (concurrency TS) |
|
flex_barrier
(
const
flex_barrier
&
)
=
delete
;
|
(3) | (concurrency TS) |
1)
Имеет тот же эффект, что и
flex_barrier
(
num_threads, c
)
, где
c
является
Callable
объектом, вызов которого возвращает -1 и не имеет побочных эффектов.
2)
Создает
flex_barrier
для
num_threads
участвующих потоков, используя
completion
для фазы завершения. Набор участвующих потоков - это первые
num_threads
потоков, достигших точки синхронизации.
3)
Конструктор копирования удален;
flex_barrier
не поддерживает копирование.
Параметры
| num_threads | - |
количество участвующих потоков для
flex_barrier
; должно быть неотрицательным
|
| completion | - | функциональный объект, управляющий фазой завершения; должен быть Callable без аргументов и с возвращаемым типом std::ptrdiff_t , и при вызове должен возвращать значение не меньше -1 и не должен генерировать исключения |
| Требования к типам | ||
-
F
должен удовлетворять требованиям
CopyConstructible
.
|
||
Примечания
Если num_threads равно нулю, набор участвующих потоков пуст, и flex_barrier может быть только уничтожен.