Condividi tramite


Classe di CMutex

Rappresenta "un'esclusione reciproca" — un oggetto di sincronizzazione che consente a un thread - accesso esclusivo a una risorsa.

class CMutex : public CSyncObject

Membri

tt45160e.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

CMutex::CMutex

Costruisce un oggetto CMutex.

Note

Mutex è utile quando un solo thread alla volta può essere consentito modificare i dati o un'altra risorsa controllata.Ad esempio, aggiungere nodi a un elenco collegato è un processo che deve essere consentito solo da un thread alla volta.Utilizzando un oggetto CMutex per controllare l'elenco collegato, solo un thread alla volta può accedere all'elenco.

Per utilizzare un oggetto CMutex, costruire l'oggetto CMutex quando necessario.Specificare il nome del mutex che si desidera attendere su e che l'applicazione deve inizialmente possederla.È quindi possibile accedere al mutex al completamento del costruttore.Chiamare CSyncObject::Unlock al termine di accedere alla risorsa controllata.

Un metodo alternativo per gli oggetti CMutex è possibile aggiungere una variabile di tipo CMutex come un membro dati alla classe che si desidera controllare.Durante la costruzione dell'oggetto selezionato, chiamare il costruttore specificare il membro dati CMutex se l'esclusione reciproca è inizialmente posseduta, il nome del mutex (se verrà utilizzato oltre i limiti dei processi) e gli attributi di sicurezza desiderati.

Per accedere alle risorse controllate dagli oggetti CMutex in questo modo, prima di creare una variabile di tipo CSingleLock o per immettere CMultiLock nella funzione membro di accesso delle risorse.Chiamare la funzione membro Lock dell'oggetto di blocco (ad esempio, CSingleLock::Lock).In questa fase, il thread accederà alla risorsa, attendere che la risorsa da rilasciare e accederà, o attenderà la risorsa da rilasciare e scaduto, non completate per accedere alla risorsa.Tuttavia, la risorsa è stata accedere in modo thread-safe.Per rilasciare la risorsa, utilizzare la funzione membro Unlock dell'oggetto di blocco (ad esempio, CSingleLock::Unlock), o consentire all'oggetto del blocco alla UIambito.

Per ulteriori informazioni sull'utilizzo degli oggetti CMutex, vedere l'articolo multithreading: Utilizzo delle classi di sincronizzazione.

Gerarchia di ereditarietà

CObject

CSyncObject

CMutex

Requisiti

Header: afxmt.h

Vedere anche

Riferimenti

Classe di CSyncObject

Grafico della gerarchia