MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
barrier< CmplFunc > 模板类 参考

通用屏障类 更多...

#include <barrier.hpp>

class  arrival_token
 到达令牌类 更多...

Public 成员函数

 barrier (ptrdiff_t count, CmplFunc completion=CmplFunc())
 构造函数
MSTL_NODISCARD arrival_token arrive (ptrdiff_t update=1)
 到达屏障点
void wait (arrival_token &&phase) const
 等待屏障
void arrive_and_wait ()
 到达并等待
void arrive_and_drop ()
 到达并退出

静态 Public 成员函数

static constexpr ptrdiff_t max () noexcept
 获取最大线程数

详细描述

template<typename CmplFunc = empty_completion>
class barrier< CmplFunc >

通用屏障类

模板参数
CmplFunc完成函数类型

屏障的用户友好接口,包装树形屏障实现。 提供类型安全的到达令牌和简化API。

在文件 barrier.hpp206 行定义.

构造及析构函数说明

◆ barrier()

template<typename CmplFunc = empty_completion>
barrier< CmplFunc >::barrier ( ptrdiff_t count,
CmplFunc completion = CmplFunc() )
inlineexplicit

构造函数

参数
count期望的参与线程数
completion完成函数

在文件 barrier.hpp244 行定义.

引用了 _MSTL, count() , 以及 move().

成员函数说明

◆ arrive()

template<typename CmplFunc = empty_completion>
MSTL_NODISCARD arrival_token barrier< CmplFunc >::arrive ( ptrdiff_t update = 1)
inline

到达屏障点

参数
update到达线程数
返回
到达令牌

在文件 barrier.hpp255 行定义.

被这些函数引用 arrive_and_wait().

◆ arrive_and_drop()

template<typename CmplFunc = empty_completion>
void barrier< CmplFunc >::arrive_and_drop ( )
inline

到达并退出

线程到达屏障点后退出参与。

在文件 barrier.hpp281 行定义.

引用了 tree_barrier< CmplFunc >::arrive_and_drop().

◆ arrive_and_wait()

template<typename CmplFunc = empty_completion>
void barrier< CmplFunc >::arrive_and_wait ( )
inline

到达并等待

组合操作:到达屏障点并等待所有线程到达。

在文件 barrier.hpp272 行定义.

引用了 arrive() , 以及 wait().

◆ max()

template<typename CmplFunc = empty_completion>
constexpr ptrdiff_t barrier< CmplFunc >::max ( )
inlinestaticconstexprnoexcept

获取最大线程数

返回
支持的最大线程数

在文件 barrier.hpp235 行定义.

引用了 tree_barrier< CmplFunc >::max().

◆ wait()

template<typename CmplFunc = empty_completion>
void barrier< CmplFunc >::wait ( arrival_token && phase) const
inline

等待屏障

参数
phase到达令牌

在文件 barrier.hpp263 行定义.

引用了 _MSTL , 以及 move().

被这些函数引用 arrive_and_wait().


该类的文档由以下文件生成: