Compartilhar via


Classe CMutex

Representa um "mutex" — um objeto de sincronização que permita acesso mutuamente exclusivo de um segmento a um recurso.

class CMutex : public CSyncObject

Comentários

' Exclusões mútuas ' são úteis quando apenas um thread em um time pode ter permissão para modificar dados ou algum Outros recurso controlado.Por exemplo, adicionar nós a uma lista vinculada é um processo só deve ser permitido por um segmento em um time.Usando um CMutex objeto para controlar a lista vinculada, apenas um thread por vez pode obter acesso à lista.

Para usar um CMutex objeto, construir o CMutex objeto quando for necessário. Especifique o nome do mutex que deseja aguardar e que seu aplicativo deve inicialmente possui.Você pode então acesso mutex quando retorna do construtor. De telefonarCSyncObject::Unlock quando tiver concluído o acesso ao recurso controlado.

Um método alternativo para o uso de CMutex objetos é adicionar uma variável do tipo CMutex sistema autônomo um membro de dados para a classe você deseja controle. Durante a construção do objeto controlado, chama o construtor do CMutex membro de dados especificando se o mutex inicialmente pertence, o nome do mutex (se ele for usado em limites de processo) e atributos de segurança desejado.

Para acessar os recursos controlados por CMutex objetos dessa forma, primeiro criar uma variável de qualquer tipo CSingleLock or type CMultiLock na função de membro de acesso do seu recurso.Em seguida, telefonar Lock função de membro (por exemplo, CSingleLock::bloquear).Neste ponto, seu thread irá ou acessar o recurso, aguardar que o recurso ser liberado e obter acesso ou esperar que o recurso a ser liberado e o time limite, que não consegue obter acesso ao recurso.Em qualquer caso, o recurso foi acessado de uma forma thread-safe.Para liberar o recurso, use Unlock função de membro (por exemplo, CSingleLock::Unlock), ou permitir que o objeto bloquear ficarem fora do escopo.

Para obter mais informações sobre como usar CMutex objetos, consulte o artigo Multithreading: Como usar a sincronização classes.

Requisitos

Cabeçalho: afxmt.h

Consulte também

Referência

Classe CSyncObject

Gráfico de hierarquia

Outros recursos

CMutex membros