std::experimental::barrier::arrive_and_drop
< cpp | experimental | barrier
void arrive_and_drop(); |
(并发 TS) | |
到达 barrier
的同步点并从参与线程集中移除当前线程。此函数是否阻塞直至完成阶段结束是未指定的。
若调用方线程不在此 barrier
的参与线程集中,则行为未定义。
对 arrive_and_drop
的调用同步于 barrier
的完成阶段的开始。完成阶段的完成同步于从调用返回。
对 arrive_and_drop
和 arrive_and_wait
的调用决不引入与其自身或与彼此间的数据竞争。
异常
不抛出异常。
注意
若每个参与线程都调用 arrive_and_drop()
,则屏障只能被销毁。
一个线程在 barrier
上调用 arrive_and_drop()
后,它就不再是参与线程集的成员,从而不能再于同一 barrier
上调用 arrive_and_drop()
或 arrive_and_wait()
。
参阅
到达同步点并阻塞 (公开成员函数) |