<mutex>
Inclua o cabeçalho padrão <mutex> para definir classes mutex, recursive_mutex, timed_mutex, e recursive_timed_mutex; os modelos lock_guard e unique_lock; e usa os tipos e funções que definem áreas de código de mútuo- exclusão.
Este cabeçalho usa o tempo de execução (ConcRT) de simultaneidade para que você possa usar o em conjunto com outros mecanismos de ConcRT.Para obter mais informações sobre ConcRT, consulte Tempo de execução de concorrência.
#include <mutex>
Comentários
Observação |
---|
No código que é criado usando /clr ou /clr:pure, este cabeçalho é bloqueado. |
As classes mutex e recursive_mutex são tipos mutex.Um tipo mutex tem um construtor padrão e um destrutor que não lance exceções.Esses objetos têm métodos que fornecem a exclusão mútua quando vários segmentos tentarem bloquear o mesmo objeto.Especificamente, um tipo mutex contém métodos lock, try_lock, e unlock:
O método de lock bloqueia o segmento de chamada até que o segmento obtenha a propriedade de mutex.O valor de retorno é ignorado.
O método de try_lock tentar obter a propriedade de mutex sem bloqueio.Seu tipo de retorno é conversível a bool e é true se o método obtém a propriedade, mas é de outra forma false.
O método de unlock libera a propriedade mutex do segmento de chamada.
Você pode usar tipos mutex como argumentos de tipo para instanciar os modelos lock_guard e unique_lock.Você pode usar objetos desses tipos como o argumento de Lock funções de membro de espera no modelo condition_variable_any.
Um tipo programado mutex satisfaz os requisitos para um tipo mutex.Além disso, possui os métodos de try_lock_for e de try_lock_until que devem ser acessíveis usando um argumento e deve retornar um tipo que seja conversível a bool.Um tipo programado mutex pode definir essas funções usando argumentos adicionais, desde que todos os argumentos extras têm valores padrão.
O método de try_lock_for deve ser acessível usando um argumento, Rel_time, cujo tipo é uma instanciação de chrono::duration.O método tenta obter a propriedade mutex, mas retorna dentro de tempo que são designados por Rel_time, independentemente de êxito.O valor de retorno converte a true se o método obtém a propriedade; caso contrário, converte o valor de retorno a false.
O método de try_lock_until deve ser acessível usando um argumento, Abs_time, cujo tipo é uma instanciação de chrono::time_point.O método tenta obter não posteriormente a propriedade mutex, mas retorna a hora que são designados por Abs_time, independentemente de êxito.O valor de retorno converte a true se o método obtém a propriedade; caso contrário, converte o valor de retorno a false.
Um tipo mutex é também conhecido como um tipo lockable.Se não fornece a função de membro try_lock, é um tipo lockable básico.Um tipo programado mutex é também conhecido como um tipo lockable regular.
Classes
Nome |
Descrição |
---|---|
Representa um modelo que pode ser instanciado para criar um objeto cujo destrutor desbloquee mutex. |
|
Representa um tipo mutex.Use objetos desse tipo para aplicar a exclusão mútua em um programa. |
|
Representa um tipo mutex.Constrast na classe de mutex , o comportamento de métodos de bloqueio de chamada para objetos que são bloqueados já é bem definido. |
|
Representa um tipo programado mutex.Use objetos desse tipo para aplicar a exclusão mútua que tem bloqueio custoso limitado em um programa.Ao contrário dos objetos do tipo timed_mutex, o efeito de métodos de bloqueio de chamada para objetos de recursive_timed_mutex é bem definido. |
|
Representa um tipo programado mutex.Use objetos desse tipo para aplicar a exclusão mútua que tem bloqueio custoso limitado em um programa. |
|
Representa um modelo que pode ser instanciado para criar objetos que gerenciam o bloqueio e desbloquear de mutex. |
Funções
Nome |
Descrição |
---|---|
Fornece um mecanismo para chamar um objeto acessível especificado exatamente uma vez durante a execução. |
|
Tenta bloquear de todos os argumentos sem bloqueio completa. |
Estruturas
Nome |
Descrição |
---|---|
Representa um tipo que é usado para definir adopt_lock. |
|
Representa um tipo que define um objeto de defer_lock que é usado para selecionar um dos construtores sobrecarregados de unique_lock. |
|
Representa struct que é usado com a função call_once de modelo para garantir que o código de inicialização ser chamado somente uma vez, mesmo na presença de vários threads de execução. |
|
Representa struct que define um objeto de try_to_lock e é usado para selecionar um dos construtores sobrecarregados de unique_lock. |
As variáveis
Nome |
Descrição |
---|---|
Representa um objeto que pode ser passado para os construtores para que lock_guard e unique_lock indica que o objeto mutex que está sendo passado para o construtor também é bloqueado. |
|
Representa um objeto que pode ser passado para o construtor para unique_lock, para indicar que o construtor não deve bloquear o objeto mutex que ela está sendo passado também. |
|
Representa um objeto que pode ser passado para o construtor para unique_lock que indica que o construtor deve tentar desbloquear mutex que ela está sendo passado também sem bloqueio. |