Red de conocimiento informático - Material del sitio web - ¿Qué objetos se utilizan para permitir el acceso mutuamente exclusivo a los recursos en Windows?

¿Qué objetos se utilizan para permitir el acceso mutuamente exclusivo a los recursos en Windows?

El uso de objetos mutuamente excluyentes es básicamente el mismo que el uso de Eventos. La diferencia es que Mutex se denomina objeto mutex global y puede usarse no solo en múltiples subprocesos, sino incluso en múltiples procesos. Mutex es un objeto con nombre y todos los Mutex creados con el mismo nombre serán tratados como el mismo objeto.

Tanto Mutex como Event tienen dos usos: sincronización y exclusión mutua. Debido a sus propias características, muchos recursos requieren que solo un subproceso pueda acceder a ellos al mismo tiempo, como estructuras de datos como vectores. Si dos subprocesos realizan operaciones de inserción al mismo tiempo, se producirán errores de datos. Códigos. No se permite acceder a algunos códigos al mismo tiempo. Múltiples hilos ingresan simultáneamente. En este momento, puede utilizar Mutex o Event para exclusión mutua.

El método específico es crear un Mutex o Evento con un AutoReset con un valor inicial de True (Set) (el parámetro ManualReset es FALSE), y luego cada vez que quieras acceder al recurso correspondiente, primero WaitForSingleObject Después de una espera exitosa, el evento o Mutex se volverá falso (desconfigurado) y otros subprocesos no podrán ingresar después de que se complete el uso. SetEvent restaurará el mutex o evento al estado establecido, lo que permitirá que otros subprocesos en espera ingresen.

Módulos como CriticalSection también utilizan Event o Mutex internamente para lograr la exclusión mutua. Tenga en cuenta que debe utilizar un Mutex o Evento independiente para cada recurso o código mutuamente excluyente.