CMutex

U&n objeto de la clase CMutex representa un "mutex" nbsp; — un objeto de sincronización que permite un acceso mutuamente excluyentes de hilo a un recurso. Exclusiones mutuas son útiles cuando sólo un subproceso en un momento pueden modificar datos o algún otro recurso controlado. Por ejemplo, agregar nodos a una lista enlazada es un proceso que sólo se debería permitir por un subproceso en un momento. Mediante un objeto CMutex para controlar la lista vinculada, sólo un subproceso en un momento puede acceder a la lista.

Para utilizar un objeto CMutex , construir el objeto CMutex cuando es necesario. Especificar el nombre de la exclusión mutua que desea esperar, y que su aplicación debe inicialmente propio de TI. A continuación puede acceder a la exclusión mutua cuando vuelva el constructor. Llame a CSyncObject::Unlock cuando haya terminado de acceder a los recursos controlados.

Un método alternativo para utilizar objetos de CMutex es agregar una variable de tipo CMutex como un miembro de datos a la clase que desea controlar. Durante la construcción del objeto controlado, llamar al constructor de los miembros de datos de CMutex especifica si la exclusión mutua es propiedad inicialmente, el nombre de la exclusión mutua (si se utilizará a través de límites de proceso) y desea atributos de seguridad.

Acceso a los recursos controlados por objetos CMutex de esta manera, primero cree una variable de cualquier tipo de CSingleLock o escriba CMultiLock en la función de miembro de acceso del recurso. A continuación, llamar a función miembro de bloqueo del objeto de bloqueo (por ejemplo, CSingleLock::Lock). En este punto, su hilo será obtener acceso al recurso, espere a que el recurso a liberarse y obtener acceso o esperar a que los recursos para ser lanzado y fuera de tiempo, no tener acceso al recurso. En cualquier caso, el recurso ha sido visitado de una manera segura para los subprocesos. Para liberar el recurso, utilice la función miembro de desbloqueo del objeto de bloqueo (por ejemplo, CSingleLock::Unlock) o permitir que caen fuera del ámbito el objeto de bloqueo.

Para obtener más información sobre el uso de objetos de CMutex , consulte el artículo subprocesamiento múltiple: cómo usar las clases de sincronización en la Guía del programador de Visual C++.

# include lt;afxmt.h>

Miembros de la claseClase base | Diagrama de jerarquía

Muestra  Ejemplo de MFC SEMÁFOROS

Index