std::experimental::barrier:: arrive_and_wait
|
void
arrive_and_wait
(
)
;
|
(TS параллелизма) | |
Блоки и достигают точки синхронизации барьера.
Поведение не определено, если вызывающий поток не входит в набор участвующих потоков данного барьера.
Вызовы
arrive_and_wait
синхронизируются с началом фазы завершения барьера. Завершение фазы завершения синхронизируется с возвратом из вызова.
Вызовы
arrive_and_drop
и
arrive_and_wait
никогда не приводят к состоянию гонки данных между собой или друг с другом.
Примечания
Безопасно, чтобы поток вызывал либо
arrive_and_wait()
, либо
arrive_and_drop()
сразу после возврата из этого вызова. Не требуется гарантировать, что все заблокированные потоки вышли из
arrive_and_wait()
перед тем, как поток вызовет его снова.
Набор участвующих потоков для
barrier
, созданного для
num_threads
потоков, представляет собой первые
num_threads
потоков, достигающих его точки синхронизации. Этот набор не изменяется от цикла к циклу, за исключением потоков, удаленных из набора в результате вызовов
arrive_and_drop()
.
Исключения
Ничего не выбрасывает.
Смотрите также
|
прибыть в точку синхронизации и удалить текущий поток из набора участвующих потоков
(публичная функция-член) |