Partilhar via


Classe mutex (Biblioteca Padrão C++)

Representa um tipo mutex. Objetos desse tipo podem ser usados para impor a exclusão mútua dentro de um programa.

Sintaxe

class mutex;

Membros

Destruidor/construtor público

Nome Descrição
mutex Constrói um objeto mutex.
~mutex Libera todos os recursos que foram usados pelo objeto mutex.

Métodos públicos

Nome Descrição
lock Bloqueia o thread de chamada até que ele tenha obtido a propriedade do mutex.
native_handle Retorna o tipo específico à implementação que representa o identificador mutex.
try_lock Tenta obter a propriedade do mutex sem o bloqueio.
unlock Libera a propriedade do mutex.

Requisitos

Cabeçalho: <mutex>

Namespace: std

lock

Bloqueia o thread de chamada até que ele tenha obtido a propriedade do mutex.

void lock();

Comentários

Se o thread de chamada já for o proprietário do mutex, o comportamento será indefinido.

Construtor

Constrói um objeto mutex que não está bloqueado.
Antes do Visual Studio 2022 17.10, a implementação desse construtor pela Microsoft não constexprera . Agora é constexpr.

mutex() noexcept;

Destruidor

Libera todos os recursos usados pelo objeto mutex.

~mutex();

Comentários

Se o objeto estiver bloqueado quando o destruidor for executado, o comportamento será indefinido.

native_handle

Retorna o tipo específico à implementação que representa o identificador mutex. O identificador mutex pode ser usado de maneiras específicas da implementação.

native_handle_type native_handle();

Valor de retorno

native_handle_type é definido como um Concurrency::critical_section *. É lançado como void *.

try_lock

Tenta obter a propriedade do mutex sem o bloqueio.

bool try_lock();

Valor retornado

true se o método obtiver a propriedade do mutex com êxito; caso contrário, false.

Comentários

Se o thread de chamada já for o proprietário do mutex, o comportamento será indefinido.

unlock

Libera a propriedade do mutex.

void unlock();

Comentários

Se o thread de chamada não for o proprietário de mutex, o comportamento será indefinido.

Confira também

Referência de Arquivos de Cabeçalho
<mutex>