Sobes.tech
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.