Share via


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 对象上成功调用 locktry_lock 的次数一样多时,此方法才释放其所有权。

如果调用的线程不拥有 mutex,则该行为不确定。

另请参阅

头文件引用
<mutex>