Compartir a través de


mutex (Clase, Biblioteca estándar de C++)

Representa un tipo de exclusión mutua. Los objetos de este tipo se pueden usar para aplicar la exclusión mutua dentro de un programa.

Sintaxis

class mutex;

Miembros

Constructor/destructor público

Nombre Descripción
mutex Construye un objeto mutex.
~mutex Libera todos los recursos utilizados por el objeto mutex.

Métodos públicos

Nombre Descripción
lock Bloquea el subproceso que realiza la llamada hasta que este obtiene la propiedad mutex.
native_handle Devuelve el tipo específico de la implementación que representa el identificador de exclusión mutua.
try_lock Intenta obtener la propiedad de mutex sin bloquearlo.
unlock Libera la propiedad de mutex.

Requisitos

Encabezado: <mutex>

Espacio de nombres: std

lock

Bloquea el subproceso que realiza la llamada hasta que este obtiene la propiedad mutex.

void lock();

Comentarios

Si el subproceso que realiza la llamada ya posee mutex, el comportamiento es indefinido.

Constructor

Crea un objeto mutex que no está bloqueado.
Antes de Visual Studio 2022 17.10, la implementación de Microsoft de este constructor no constexprera . Ahora es constexpr.

mutex() noexcept;

Destructor

Libera todos los recursos usados por el objeto mutex.

~mutex();

Comentarios

Si el objeto está bloqueado cuando se ejecuta el destructor, el comportamiento es indefinido.

native_handle

Devuelve el tipo específico de la implementación que representa el identificador de exclusión mutua. El controlador de exclusión mutua puede usarse en aspectos específicos de la implementación.

native_handle_type native_handle();

Valor devuelto

native_handle_typese define como .Concurrency::critical_section * Se convierte como void *.

try_lock

Intenta obtener la propiedad de mutex sin bloquearlo.

bool try_lock();

Valor devuelto

Es true si el método obtiene correctamente la propiedad de mutex; de lo contrario, es false.

Comentarios

Si el subproceso que realiza la llamada ya posee mutex, el comportamiento es indefinido.

unlock

Libera la propiedad de mutex.

void unlock();

Comentarios

Si el subproceso que realiza la llamada no posee mutex, el comportamiento no está definido.

Consulte también

Referencia de archivos de encabezado
<mutex>