std::experimental::barrier::arrive_and_wait
来自 cppreference.com
< cpp | experimental | barrier
void arrive_and_wait(); |
(并发 TS) | |
阻塞并到达屏障的同步点。
如果调用线程不在此屏障的参与线程集中,则行为未定义。
对 arrive_and_wait
的调用与屏障完成阶段的开始同步。完成阶段的完成与调用返回同步。
对 arrive_and_drop
和 arrive_and_wait
的调用永远不会与自身或彼此之间引入数据竞争。
[编辑] 注释
线程可以安全地在从此调用返回后立即调用 arrive_and_wait()
或 arrive_and_drop()
。无需确保所有阻塞线程都已退出 arrive_and_wait()
,线程才能再次调用它。
为 num_threads
个线程构造的 barrier
的参与线程集是前 num_threads
个到达其同步点的线程。此集合不会在循环之间改变,除非由于 arrive_and_drop()
调用而从集合中移除线程。
[编辑] 异常
不抛出任何内容。
[编辑] 另请参阅
到达同步点并从参与线程集中删除当前线程 (公共成员函数) |