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.