Compartir a través de


CMutex Class

Representa una “exclusión mutua” — un objeto de sincronización que permite que un subproceso tenga - acceso exclusivo a un recurso.

class CMutex : public CSyncObject

Miembros

Constructores públicos

Name

Descripción

CMutex::CMutex

Crea un objeto CMutex.

Comentarios

Exclusiones mutuas es útil cuando sólo un subproceso cada vez se puede permitir modificar datos o a otro recurso controlado. Por ejemplo, agregar nodos a una lista vinculada es un proceso que se debe permitir únicamente por un subproceso cada vez. Utilizando un objeto de CMutex para controlar la lista vinculada, solo un subproceso a la vez puede obtener acceso a la lista.

Para utilizar un objeto de CMutex , cree el objeto de CMutex cuando es necesario. Especifique el nombre mutex que va a esperar, y que la aplicación debe poseerla inicialmente. Podrá obtener acceso a la exclusión mutua cuando el constructor devuelve. Llame a CSyncObject::Unlock cuando se haga que tiene acceso al recurso controlado.

Un método alternativo para utilizar los objetos de CMutex es agregar una variable de CMutex escrito como un miembro de datos a la clase que desee al control. Durante la construcción del objeto controlado, llame al constructor de especificar de los CMutex si la exclusión mutua se posee inicialmente, nombre mutex (si utiliza los límites de un proceso), y los atributos de seguridad deseados.

Para tener acceso a los recursos controlados por los objetos de CMutex de esta manera, primero para crear una variable de CSingleLock cualquiera de CMultiLock escrito en la función miembro de acceso del recurso. Llamar a continuación a la función miembro de Lock de objeto de bloqueo (por ejemplo, CSingleLock::Lock). En este punto, el subproceso accederá el recurso, espere a que el recurso sea liberado y accederá, o esperará el recurso se producirán liberar y el tiempo de espera, si se deja para obtener acceso al recurso. En cualquier caso, el recurso se ha tenido acceso de una manera segura para subprocesos. Para liberar el recurso, utilizar la función miembro de Unlock de objeto de bloqueo (por ejemplo, CSingleLock::Unlock), o permitir que el objeto de bloqueo a la reducción fuera del ámbito.

Para obtener más información sobre cómo utilizar los objetos de CMutex , vea el artículo Multithreading: Cómo utilizar las clases de sincronización.

Jerarquía de herencia

CObject

CSyncObject

CMutex

Requisitos

encabezado: afxmt.h

Vea también

Referencia

CSyncObject Class

Gráfico de jerarquías