命名空间
变体
操作

std::experimental::barrier

来自 cppreference.cn
定义于头文件 <experimental/barrier>
class barrier;
(并发性 TS)

std::experimental::barrier 提供了一种线程协调机制,允许一组参与线程阻塞,直到操作完成。 与 std::experimental::latch 不同,屏障是可重用的;一旦参与线程从屏障的同步点释放,它们就可以重用同一个屏障。

屏障有一个完成阶段,由参与线程之一执行,一旦参与线程组中的所有线程都到达同步点。 arrive_and_waitarrive_and_drop 调用 完成阶段的开始同步;完成阶段的结束与所有被其完成阻塞的调用的返回同步。

对于 std::experimental::barrier,完成阶段是空的。 std::experimental::flex_barrier 允许用户使用函数对象控制完成阶段。

num_threads 个线程构造的 barrier 的参与线程组是在构造后首次到达其同步点的 num_threads 个线程。 同一组线程(除了调用 arrive_and_drop() 的线程)必须在每个周期到达 barrier

[编辑] 成员函数

构造一个 barrier
(公共成员函数) [编辑]
销毁屏障
(公共成员函数) [编辑]
operator=
[已删除]
不可复制赋值
(公共成员函数) [编辑]
到达同步点并阻塞
(公共成员函数) [编辑]
到达同步点并将当前线程从参与线程组中移除
(公共成员函数) [编辑]