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

闩锁类 更多...

#include <latch.hpp>

Public 成员函数

constexpr latch (const platform_wait_t expected) noexcept
 构造函数
 ~latch ()=default
 析构函数
 latch (const latch &)=delete
 禁止拷贝构造
latchoperator= (const latch &)=delete
 禁止拷贝赋值
MSTL_ALWAYS_INLINE void count_down (const platform_wait_t update=1)
 减少计数器
MSTL_ALWAYS_INLINE bool try_wait () const noexcept
 尝试等待
MSTL_ALWAYS_INLINE void wait () const noexcept
 等待计数器为零
MSTL_ALWAYS_INLINE void arrive_and_wait (const platform_wait_t update=1) noexcept
 减少计数器并等待

静态 Public 成员函数

static constexpr platform_wait_t max () noexcept
 获取闩锁的最大计数值

详细描述

闩锁类

闩锁是一种同步原语,用于协调多个线程的执行。 线程可以等待闩锁的计数器减为零,或者减少计数器并等待。 闩锁是一次性的,计数器减为零后不能被重置。

在文件 latch.hpp29 行定义.

构造及析构函数说明

◆ latch()

latch::latch ( const platform_wait_t expected)
inlineexplicitconstexprnoexcept

构造函数

参数
expected初始计数值

创建闩锁并设置初始计数值。计数值必须为非负。

在文件 latch.hpp48 行定义.

被这些函数引用 latch() , 以及 operator=().

成员函数说明

◆ arrive_and_wait()

MSTL_ALWAYS_INLINE void latch::arrive_and_wait ( const platform_wait_t update = 1)
inlinenoexcept

减少计数器并等待

参数
update减少的数量,默认为1

原子地减少计数器,然后等待计数器变为零。 这是一个组合操作,等价于先调用count_down()再调用wait()。

注解
如果计数器变为负值,行为未定义

在文件 latch.hpp103 行定义.

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

◆ count_down()

MSTL_ALWAYS_INLINE void latch::count_down ( const platform_wait_t update = 1)
inline

减少计数器

参数
update减少的数量,默认为1

原子地减少闩锁的计数器。如果计数器减为零,则通知所有等待线程。

注解
如果计数器变为负值,行为未定义

在文件 latch.hpp65 行定义.

引用了 _MSTL, atomic_fetch_sub(), atomic_notify_address() , 以及 memory_order_release.

被这些函数引用 arrive_and_wait().

◆ max()

constexpr platform_wait_t latch::max ( )
inlinestaticconstexprnoexcept

获取闩锁的最大计数值

返回
最大可能的计数值

在文件 latch.hpp38 行定义.

引用了 numeric_traits< T, Dummy >::max().

◆ try_wait()

MSTL_ALWAYS_INLINE bool latch::try_wait ( ) const
inlinenoexcept

尝试等待

返回
计数器是否为零

非阻塞地检查闩锁的计数器是否为零。

在文件 latch.hpp78 行定义.

引用了 _MSTL, atomic_load() , 以及 memory_order_acquire.

被这些函数引用 wait().

◆ wait()

MSTL_ALWAYS_INLINE void latch::wait ( ) const
inlinenoexcept

等待计数器为零

阻塞当前线程,直到闩锁的计数器减为零。

注解
如果计数器已经为零,则立即返回

在文件 latch.hpp89 行定义.

引用了 _MSTL, atomic_wait_address() , 以及 try_wait().

被这些函数引用 arrive_and_wait().


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