<mutex>

包括标准标头 <mutex> 定义选件类 mutexrecursive_mutextimed_mutexrecursive_timed_mutex;模板 lock_guardunique_lock;和支持定义作为互斥代码区域和函数的类型。

此标头使用并发运行时 (ConcRT),以便可以与其他 ConcRT framework 一起使用它。 有关 ConcRT 的更多信息,请参见 并发运行时

#include <mutex>

备注

备注

使用 /clr/clr:pure,在生成的代码,则此标头块。

选件类 mutexrecursive_mutex 是 mutex 类型。 mutex 类型都有一个默认值构造函数和不引发异常的析构函数。 这些对象具有提供互斥的方法,并在多个线程尝试锁定同一对象时。 具体而言,mutex 类型包含方法 locktry_lockunlock:

  • lock 方法阻止调用线程,直到线程获取 mutex 的所有权。 其返回值将被忽略。

  • try_lock 方法尝试获取 mutex 的所有权,而不必阻止。 其返回类型转换成 bool 是 true,如果方法获得所有权,但是,如果不 false。

  • unlock 方法从调用线程释放 mutex 的所有权。

可以使用 mutex 类型作为类型参数实例化模板 lock_guardunique_lock。 可以使用这些类型的对象作为 Lock 参数到等待成员函数在模板 condition_variable_any

一个 计时 mutex 类型 都满足 mutex 类型的要求。 此外,它还必须是可调用包装使用一个参数的 try_lock_fortry_lock_until 方法,并且必须返回转换成 bool的类型。 在这些附加参数都具有默认值条件下,使用附加参数,一个计时 mutex 类型可以定义这些功能。

  • try_lock_for 方法必须是可调用包装使用一个参数,Rel_time,类型是 chrono::duration的实例化。 无论成功,方法将尝试获取 mutex 的所有权,但是,在 Rel_time指定的时间内,将返回。 如果方法获得所有权,返回值转换为 true ;否则,返回值转换为 false。

  • try_lock_until 方法必须是可调用包装使用一个参数,Abs_time,类型是 chrono::time_point的实例化。 无论成功,方法为晚于由 Abs_time指定的时间尝试获取 mutex 的所有权,但是,返回未。 如果方法获得所有权,返回值转换为 true ;否则,返回值转换为 false。

也称为 mutex 类型是一个 可锁定的类型。 如果它不提供成员函数 try_lock,它是一个 基本的可锁定的类型。 也称为一个计时 mutex 类型是一个 计时可锁定的类型。

Hh921467.collapse_all(zh-cn,VS.110).gif

名称

描述

lock_guard选件类

表示实例化创建对象析构函数打开 mutex的模板。

mutex Class (STL)

表示一个 mutex 类型。 使用此类型的对象强制在过程内的互斥。

recursive_mutex选件类

表示一个 mutex 类型。 在对 mutex 选件类的 constrast,调用已锁定的对象的锁的方法行为是显式定义的。

recursive_timed_mutex选件类

表示一个计时 mutex 类型。 使用此类型的对象强制具有有限时间块在过程内的互斥。 不同类型 timed_mutex对象,调用 recursive_timed_mutex 对象的锁的方法的效果是显式定义的。

timed_mutex选件类

表示一个计时 mutex 类型。 使用此类型的对象强制具有有限时间块在过程内的互斥。

unique_lock选件类

表示实例化创建对象管理锁定和取消锁定 mutex的模板。

Hh921467.collapse_all(zh-cn,VS.110).gif函数

名称

描述

call_once功能

为确切调用指定的可调用包装对象提供框架一次在执行时。

lock 函数

对锁的未尝试死锁的所有参数。

Hh921467.collapse_all(zh-cn,VS.110).gif结构

名称

描述

adopt_lock_t结构

表示用于定义 adopt_lock的类型。

defer_lock_t结构

表示定义一 defer_lock 对象用于选择一个 unique_lock重载的构造函数的类型。

once_flag结构

表示 struct 用于与模板函数 call_once 即使在执行时多个线程确保的初始化代码只调用。

try_to_lock_t结构

表示定义一 try_to_lock 对象并使用选择一个 unique_lock重载的构造函数的 struct。

Hh921467.collapse_all(zh-cn,VS.110).gif变量

名称

描述

adopt_lock变量

表示可传递到 lock_guardunique_lock 的构造函数可以指示的对象还传递给构造函数的锁定的 mutex 对象。

defer_lock变量

表示可传递到 unique_lock的构造函数的对象,指示该构造函数不应锁还传递给它的 mutex 对象。

try_to_lock变量

表示可传递到 unique_lock 的构造函数可以指示的对象还传递给它,而不必阻止的构造函数应当尝试打开 mutex

请参见

其他资源

标头文件