std::experimental::barrier::arrive_and_drop
来自 cppreference.com
< cpp | experimental | barrier
void arrive_and_drop(); |
(并发 TS) | |
到达屏障的同步点,并将当前线程从参与线程集中移除。此函数是否阻塞直到完成阶段结束是不确定的。
如果调用线程不在此屏障的参与线程集中,则行为未定义。
对 arrive_and_drop
的调用与屏障完成阶段的开始同步。如果调用阻塞,则完成阶段的完成与调用返回同步。
对 arrive_and_drop
和 arrive_and_wait
的调用永远不会对自身或彼此引入数据竞争。
[编辑] 异常
不抛出任何异常。
[编辑] 说明
如果每个参与线程都调用 arrive_and_drop()
,则屏障只能被销毁。
在线程对屏障调用 arrive_and_drop()
之后,它不再是其参与线程集的成员,因此不能再对同一个屏障调用 arrive_and_drop()
或 arrive_and_wait()
。
[编辑] 另请参阅
到达同步点并阻塞 (公有成员函数) |