Junior — Middle
¿Puedes explicar qué es la exclusión mutua (Mutex) y cómo funciona?
sobes.tech AI
Respuesta de la IA
La exclusión mutua (Mutex) es un mecanismo de sincronización que garantiza que en un momento dado solo una gorutina (hilo) pueda acceder a un recurso o sección crítica de código.
En Go, se utiliza el tipo sync.Mutex para esto. Cuando una gorutina llama a Lock(), bloquea el mutex, y otras gorutinas que intenten llamar a Lock() esperarán hasta que el mutex sea desbloqueado mediante Unlock().
Ejemplo:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
En este ejemplo, increment aumenta de forma segura el valor de counter, evitando accesos simultáneos desde varias gorutinas.