<mutex>
Inclua o mutex padrão do cabeçalho> <para definir as classes mutex, recursive_mutex, timed_mutex, e recursive_timed_mutex; os modelos lock_guard e unique_lock; e dando suporte aos tipos e funções que definem regiões de código de mútuo- exclusão.
Este cabeçalho usa o tempo de execução (ConcRT) de simultaneidade de forma que você possa usar o junto com outros mecanismos de ConcRT. Para obter mais informações sobre como ConcRT, consulte Tempo de Execução de Simultaneidade.
#include <mutex>
Comentários
Dica
No código que é construído usando /clr ou /clr:pure, este cabeçalho é bloqueado.
As classes mutex e recursive_mutex são tipos de mutex. Um tipo de mutex tem um construtor padrão e um destruidor que não gerencie exceções. Esses objetos têm métodos que fornecem a exclusão mútua quando vários threads tenta bloquear o mesmo objeto. Especificamente, um tipo de mutex contém os métodos lock, try_lock, e unlock:
O método de lock bloqueia o thread de chamada até que o thread obtenha a propriedade do mutex. O valor de retorno será ignorado.
O método de try_lock tenta obter a propriedade do mutex sem bloqueio. O tipo de retorno é convertido em bool e é true se o método obtém a propriedade, mas é normalmente false.
O método de unlock libera a propriedade do mutex do thread de chamada.
Você pode usar tipos de mutex como argumentos de tipo para criar uma instância dos modelos lock_guard e unique_lock. Você pode usar objetos desses tipos como o argumento de Lock às funções de membro de espera no modelo condition_variable_any.
Um tipo programado do mutex satisfaz os requisitos para um tipo de mutex. Além disso, a tem métodos de try_lock_for e de try_lock_until que devem estar acessíveis usando um argumento e deve retornar um tipo que possa ser convertido na bool. Um tipo programado do mutex pode definir essas funções usando argumentos adicionais, contanto que os argumentos adicionais todos têm valores padrão.
O método de try_lock_for deve ser acessada usando o argumento, Rel_time, cujo tipo é uma instanciação de chrono::duration. O método tenta obter a propriedade do mutex, mas retorna no tempo que são designados por Rel_time, independentemente do êxito. O valor de retorno é convertido em true se o método obtém a propriedade; caso contrário, o converterá o valor de retorno a false.
O método de try_lock_until deve ser acessada usando o argumento, Abs_time, cujo tipo é uma instanciação de chrono::time_point. O método não tenta obter posteriormente a propriedade do mutex, mas retorna à hora que são designados por Abs_time, independentemente do êxito. O valor de retorno é convertido em true se o método obtém a propriedade; caso contrário, o converterá o valor de retorno a false.
Um tipo de mutex também é conhecido como um tipo bloqueáveis. Se o não fornece a função de membro try_lock, é um tipo bloqueáveis básico. Um tipo programado do mutex também é conhecido como um tipo bloqueáveis programado.
Classes
Nome |
Descrição |
---|---|
Representa um modelo que possa ser criado uma instância do para criar um objeto cujo destruidor desbloquee mutex. |
|
Representa um tipo mutex. Use objetos desse tipo para impor a exclusão mútua em um programa. |
|
Representa um tipo mutex. No constrast à classe de mutex , o comportamento de métodos de bloqueio de chamada para os objetos que estão bloqueados já é bem definido. |
|
Representa um tipo de instância do programada mutex. Use objetos desse tipo para impor a exclusão mútua que tem bloqueio tempo limitado em um programa. Diferentemente dos objetos de tipo timed_mutex, o efeito dos métodos de bloqueio de chamada para objetos de recursive_timed_mutex é bem definido. |
|
Representa um tipo de instância do programada mutex. Use objetos desse tipo para impor a exclusão mútua que tem bloqueio tempo limitado em um programa. |
|
Representa um modelo que possa ser criado uma instância do para criar os objetos que gerenciam o bloquear 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. |
|
Tentativas de bloqueio todos os argumentos sem deadlock. |
Structs
Nome |
Descrição |
---|---|
Representa um tipo que é usado para definir adopt_lock. |
|
Representa um tipo que define um objeto de defer_lock que é usada para selecionar um dos construtores sobrecarregados de unique_lock. |
|
Representa struct usado com a função call_once do modelo para assegurar que o código de inicialização ser chamado apenas 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. |
Variáveis
Nome |
Descrição |
---|---|
Representa um objeto que pode ser passado para construtores para que lock_guard e unique_lock indica que o objeto do mutex que está sendo passado para o construtor também é bloqueada. |
|
Representa um objeto que pode ser passado para o construtor para unique_lock, para indicar que o construtor não deve bloquear o objeto do mutex que ele está sendo passado também. |
|
Representa um objeto que pode ser passado para o construtor para que unique_lock indica que o construtor deve tentar desbloquear mutex que ele também está sendo passado sem bloqueio. |