std::experimental::barrier::arrive_and_wait
来自 cppreference.cn
< cpp | experimental | barrier
void arrive_and_wait(); |
(concurrency 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()
调用而从集合中删除的线程。
[编辑] 异常
不抛出任何异常。
[编辑] 参见
到达同步点并将当前线程从参与线程集合中移除 (public member function) |