Sobes.tech
Junior — Middle

Explica qué es un bloqueo (Lock) en el contexto de un mutex y para qué se utiliza.

sobes.tech AI

Respuesta de la IA

El bloqueo (Lock) es un mecanismo de sincronización que se utiliza para evitar el acceso simultáneo de varios hilos o goroutines a un recurso compartido, con el fin de evitar condiciones de carrera y garantizar la corrección de los datos.

En el contexto de un mutex, el bloqueo significa que cuando un hilo adquiere (lock) un mutex, otros hilos que intenten adquirir el mismo mutex esperarán hasta que el primer hilo lo libere (unlock).

Ejemplo en Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()         // adquirir el bloqueo
    counter++         // sección crítica
    mu.Unlock()       // liberar el bloqueo
}

De esta manera, el bloqueo garantiza que solo un hilo ejecuta la sección crítica del código en un momento dado.