recursive_mutex 类
表示互斥体类型。 与 mutex 类相反,为已锁定的对象调用锁定方法的行为是有明确定义的。
语法
class recursive_mutex;
成员
公共构造函数
名称 | 描述 |
---|---|
recursive_mutex | 构造 recursive_mutex 对象。 |
~recursive_mutex 析构函数 | 释放由 recursive_mutex 对象使用的任何资源。 |
公共方法
名称 | 描述 |
---|---|
lock | 阻止调用线程,直到线程获取 mutex 的所有权。 |
try_lock | 在不阻止的情况下尝试获取 mutex 的所有权。 |
unlock | 释放 mutex 的所有权。 |
要求
标头:<mutex>
命名空间: std
lock
阻止调用线程,直到线程获取 mutex
的所有权。
void lock();
备注
如果调用线程已拥有 mutex
,则该方法将立即返回,同时上一锁定保持有效。
recursive_mutex
构造未锁定的 recursive_mutex
对象。
recursive_mutex();
~recursive_mutex
释放由 对象使用的任何资源。
~recursive_mutex();
备注
如果当析构函数运行时对象被锁定,则该行为不确定。
try_lock
在不阻止的情况下尝试获取 mutex
的所有权。
bool try_lock() noexcept;
返回值
如果此方法成功获取 mutex
的所有权,或者调用线程已拥有 mutex**; otherwise, **false
,则为 true
;否则为 false。
备注
如果调用线程已拥有 mutex
,则该函数将立即返回 true
,并且上一锁定一直保持有效。
解锁
释放 mutex 的所有权。
void unlock();
备注
仅当 mutex
的调用次数与在 recursive_mutex
对象上成功调用 lock 和 try_lock 的次数一样多时,此方法才释放其所有权。
如果调用的线程不拥有 mutex
,则该行为不确定。