std::experimental::flex_barrier::arrive_and_drop
来自cppreference.com
< cpp | experimental | flex barrier
void arrive_and_drop(); |
(并发 TS) | |
到达 flex_barrier
的同步点并从参与线程集合中移除当前线程。此函数是否阻塞直至完成阶段结束是未指定的。若函数阻塞,则必须选择调用方线程执行完成阶段。
若调用方线程不在此 flex_barrier
的参与线程集合中,则行为未定义。
对 arrive_and_drop
的调用同步于 flex_barrier
完成阶段的开始。若所有调用都阻塞,则完成阶段的完成同步于从该调用返回。
调用 arrive_and_drop
和 arrive_and_wait
决不引入与自身或彼此间的数据竞争。
异常
不抛出。
注解
即使每个参与线程都调用了 arrive_and_drop
,也将执行完成阶段。
线程在 flex_barrier
上调用 arrive_and_drop
后,它不能调用该屏障上除了析构函数外的任何成员函数,即使完成阶段所调用的函数对象返回正值也是如此。
参阅
到达同步点并阻塞 (公开成员函数) |