std::experimental::barrier::arrive_and_drop

void arrive_and_drop();
(并发 TS)

到达 barrier 的同步点并从参与线程集中移除当前线程。此函数是否阻塞直至完成阶段结束是未指定的。

若调用方线程不在此 barrier 的参与线程集中,则行为未定义。

arrive_and_drop 的调用同步于 barrier 的完成阶段的开始。完成阶段的完成同步于从调用返回。

arrive_and_droparrive_and_wait 的调用决不引入与其自身或与彼此间的数据竞争。

异常

不抛出异常。

注意

若每个参与线程都调用 arrive_and_drop() ,则屏障只能被销毁。

一个线程在 barrier 上调用 arrive_and_drop() 后,它就不再是参与线程集的成员,从而不能再于同一 barrier 上调用 arrive_and_drop()arrive_and_wait()

参阅

到达同步点并阻塞
(公开成员函数)