std::experimental::barrier::arrive_and_wait
来自 cppreference.cn
< cpp | experimental | barrier
void arrive_and_wait(); |
(并发技术规范) | |
阻塞并到达 barrier 的同步点。
如果调用线程不在此 barrier 的参与线程集合中,则行为未定义。
对 arrive_and_wait
的调用与 barrier 完成阶段的开始同步。完成阶段的完成与函数调用的返回同步。
对 arrive_and_drop
和 arrive_and_wait
的调用永远不会相互或与自身引入数据竞争。
[编辑] 注释
线程在此调用返回后立即调用 arrive_and_wait()
或 arrive_and_drop()
是安全的。没有必要确保所有阻塞线程都已退出 arrive_and_wait()
,然后线程再次调用它。
对于为 num_threads
个线程构造的 barrier
,参与线程的集合是前 num_threads
个到达其同步点的线程。除了因调用 arrive_and_drop()
而从集合中移除的线程外,此集合不会在每次循环中更改。
[编辑] 异常
不抛出任何异常。
[编辑] 参阅
到达同步点并从参与线程集合中移除当前线程 (公有成员函数) |