NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
unique_lock< Mutex > 模板类 参考

独占锁管理器模板 更多...

#include <mutex.hpp>

Public 类型

using mutex_type = Mutex
 互斥锁类型

Public 成员函数

 unique_lock ()=default
 默认构造函数
 unique_lock (mutex_type &m)
 从互斥锁构造
 unique_lock (mutex_type &m, defer_lock_tag tag) noexcept
 延迟锁定构造函数
 unique_lock (mutex_type &m, try_lock_tag tag) noexcept
 尝试锁定构造函数
 unique_lock (unique_lock &&other) noexcept
 移动构造函数
unique_lockoperator= (unique_lock &&other) noexcept
 移动赋值运算符
 ~unique_lock ()
 析构函数
NEFORCE_NODISCARD operator bool () const noexcept
 转换为布尔值
NEFORCE_NODISCARD bool owns_lock () const noexcept
 检查是否拥有锁
NEFORCE_NODISCARD mutex_typemutex () const noexcept
 获取管理的互斥锁指针
void lock_quiet ()
 锁定互斥锁
void unlock_quiet ()
 解锁互斥锁
bool try_lock () noexcept
 尝试锁定互斥锁
mutex_typerelease () noexcept
 释放所有权

详细描述

template<typename Mutex>
class unique_lock< Mutex >

独占锁管理器模板

模板参数
Mutex互斥锁类型

独占锁,支持延迟锁定、尝试锁定、转移所有权等特性。

在文件 mutex.hpp257 行定义.

构造及析构函数说明

◆ unique_lock() [1/5]

template<typename Mutex>
unique_lock< Mutex >::unique_lock ( )
default

默认构造函数

创建不管理任何互斥锁的唯一锁。

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

◆ unique_lock() [2/5]

template<typename Mutex>
unique_lock< Mutex >::unique_lock ( mutex_type & m)
inlineexplicit

从互斥锁构造

参数
m要管理的互斥锁引用

构造时立即锁定互斥锁。

在文件 mutex.hpp279 行定义.

◆ unique_lock() [3/5]

template<typename Mutex>
unique_lock< Mutex >::unique_lock ( mutex_type & m,
defer_lock_tag tag )
inlinenoexcept

延迟锁定构造函数

参数
m要管理的互斥锁引用
tag延迟锁定标签

构造时不锁定互斥锁,稍后可以调用lock()锁定。

在文件 mutex.hpp292 行定义.

◆ unique_lock() [4/5]

template<typename Mutex>
unique_lock< Mutex >::unique_lock ( mutex_type & m,
try_lock_tag tag )
inlinenoexcept

尝试锁定构造函数

参数
m要管理的互斥锁引用
tag尝试锁定标签

构造时尝试锁定互斥锁,如果失败则不会阻塞。

在文件 mutex.hpp302 行定义.

◆ unique_lock() [5/5]

template<typename Mutex>
unique_lock< Mutex >::unique_lock ( unique_lock< Mutex > && other)
inlinenoexcept

移动构造函数

参数
other要移动的唯一锁

转移互斥锁的所有权和锁定状态。

在文件 mutex.hpp315 行定义.

引用了 unique_lock().

◆ ~unique_lock()

template<typename Mutex>
unique_lock< Mutex >::~unique_lock ( )
inline

析构函数

如果拥有锁的所有权,则解锁互斥锁。

在文件 mutex.hpp348 行定义.

成员函数说明

◆ lock_quiet()

template<typename Mutex>
void unique_lock< Mutex >::lock_quiet ( )
inline

锁定互斥锁

如果已拥有锁或未管理互斥锁,则不执行任何操作。

在文件 mutex.hpp377 行定义.

◆ mutex()

template<typename Mutex>
NEFORCE_NODISCARD mutex_type * unique_lock< Mutex >::mutex ( ) const
inlinenoexcept

获取管理的互斥锁指针

返回
指向管理的互斥锁的指针,如果没有管理则返回nullptr

在文件 mutex.hpp370 行定义.

◆ operator bool()

template<typename Mutex>
NEFORCE_NODISCARD unique_lock< Mutex >::operator bool ( ) const
inlineexplicitnoexcept

转换为布尔值

返回
是否拥有锁的所有权

在文件 mutex.hpp358 行定义.

◆ operator=()

template<typename Mutex>
unique_lock & unique_lock< Mutex >::operator= ( unique_lock< Mutex > && other)
inlinenoexcept

移动赋值运算符

参数
other要移动的唯一锁
返回
当前对象的引用

释放当前锁,然后转移所有权。

在文件 mutex.hpp329 行定义.

引用了 addressof() , 以及 unique_lock().

◆ owns_lock()

template<typename Mutex>
NEFORCE_NODISCARD bool unique_lock< Mutex >::owns_lock ( ) const
inlinenoexcept

检查是否拥有锁

返回
是否拥有锁的所有权

在文件 mutex.hpp364 行定义.

◆ release()

template<typename Mutex>
mutex_type * unique_lock< Mutex >::release ( )
inlinenoexcept

释放所有权

返回
之前管理的互斥锁指针

放弃对互斥锁的管理权,返回互斥锁指针但不解锁。

在文件 mutex.hpp427 行定义.

◆ try_lock()

template<typename Mutex>
bool unique_lock< Mutex >::try_lock ( )
inlinenoexcept

尝试锁定互斥锁

返回
如果成功获得锁则返回true,否则返回false

非阻塞地尝试锁定互斥锁。

在文件 mutex.hpp410 行定义.

◆ unlock_quiet()

template<typename Mutex>
void unique_lock< Mutex >::unlock_quiet ( )
inline

解锁互斥锁

如果未拥有锁或未管理互斥锁,则不执行任何操作。

在文件 mutex.hpp393 行定义.


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