CMutex

Um objeto da classe CMutex represe&nta um "mutex" nbsp; — um objeto de sincronização que permite que um thread mutuamente exclusivo acessar a um recurso. Exclusões mútuas são úteis quando apenas um thread por vez pode ter permissão para modificar dados ou algum outro recurso controlado. Por exemplo, a adição de nós de uma lista vinculada é um processo que só deve ser permitido por um thread por vez. Usando um objeto CMutex para controlar a lista vinculada, apenas um thread por vez pode obter acessar à lista.

Para usar um objeto de CMutex , construa o objeto CMutex quando ela é necessária. Especifique o nome do mutex deseja esperar, e que seu aplicativo deve inicialmente ele próprio. Você pode acessar o mutex quando o construtor retorna. Chamar CSyncObject::Unlock quando tiver terminado acessar o recurso controlado.

Um método alternativo para usar objetos de CMutex é adicionar uma variável do tipo CMutex como um membro de dados para a classe que você deseja controlar. Durante a construção do objeto controlado, chamar o Construtor do membro de dados CMutex especificando se o mutex inicialmente pertence, o nome do mutex (se ele será usado através de limites de processo) e desejar atributos de segurança.

Para acessar recursos controlados por CMutex objetos dessa maneira, primeiro criar uma variável de qualquer tipo CSingleLock ou digite CMultiLock na função de membro de acesso do recurso. Em seguida, chame função de membro do objeto bloqueio Lock (por exemplo, CSingleLock::Lock). Neste ponto, seu thread irá acessar o recurso, espere para o recurso ser liberado e obter acesso ou aguarde o recurso para ser lançado e o tempo limite, falhando obter acesso ao recurso. Em qualquer caso, seu recurso foi acessado em uma forma thread-safe. Para versão o recurso, use a função de membro do objeto bloqueio Unlock (por exemplo, CSingleLock:: Unlock) ou permitir que o objeto de bloqueio para ficarem fora do escopo.

Para obter mais informações sobre usando objetos de CMutex , consulte o artigo Multithreading: como usar as Classes de sincronização no Guia do programador do Visual C++.

# include lt;afxmt.h>

Membros da classeClasse base | Gráfico de hierarquia

Amostra  MFC exemplo exclusões mútuas

Index