Mutex

Definición - ¿Qué significa Mutex?

Mutex, en C #, es una clase definida en la biblioteca de clases de .NET framework que se puede utilizar para evitar la ejecución simultánea de un bloque de código por varios subprocesos que se ejecutan en uno o varios procesos.

Mutex se utiliza como una primitiva de sincronización en situaciones en las que un recurso debe ser compartido por varios subprocesos simultáneamente. Los objetos de exclusión mutua con nombre se utilizan para la sincronización entre procesos porque varias aplicaciones pueden acceder al mismo objeto de exclusión mutua.

La clase mutex está diseñada para proteger un recurso compartido como la memoria, el identificador de archivos o la conexión de red del acceso simultáneo de múltiples subprocesos o procesos. Se utiliza en la declaración de bloqueo para proporcionar acceso serializado a los recursos y garantiza la exclusión mutua dentro de las secciones críticas del código. Ayuda a prevenir la corrupción de datos impredecible que puede surgir si no hay sincronización. A menudo se usa para buscar una sola instancia de una aplicación a la vez.

Mutex es una forma abreviada de mutuamente excluyente.

Techinfo explica Mutex

Mutex proporciona acceso a varios subprocesos a un recurso compartido, de modo que el segundo subproceso que necesita adquirir un mutex que ya ha sido adquirido por otro subproceso tiene que esperar hasta el instante en que el primer subproceso libera el mutex. Se debe tener cuidado para asegurarse de que un subproceso no intente adquirir un mutex que ya tiene, ya que esto puede resultar en un punto muerto.

Por ejemplo, un mutex se puede utilizar para proporcionar acceso exclusivo a un archivo que debe leerse o modificarse en un entorno multiproceso.

La clase Mutex tiene un constructor que se puede usar para especificar los parámetros clave de un nuevo objeto mutex durante su inicialización, como el nombre, la información de propiedad y la seguridad de control de acceso que se aplicará al mutex nombrado.

Si bien las declaraciones de bloqueo se pueden usar para sincronizar subprocesos dentro de un solo proceso, el mutex se usa a través de los límites del proceso.

Dado que la clase mutex es un contenedor de una construcción de Win32, requiere transiciones de interoperabilidad que dan como resultado un impacto en el rendimiento. Como tal, no es una buena opción a menos que sea necesario por motivos como la sincronización entre los límites del proceso.

Esta definición se escribió en el contexto de C #