Sobes.tech
Senior

¿Qué es el bloqueo pesimista?

sobes.tech AI

Respuesta de la IA

El bloqueo pesimista es un enfoque para gestionar el acceso concurrente a los datos, en el que el recurso se bloquea inmediatamente al comenzar la operación para prevenir conflictos. Es decir, cuando una transacción quiere modificar datos, adquiere un bloqueo, y otras transacciones esperan hasta que el bloqueo se libere.

En Go, esto puede implementarse mediante mutexes (sync.Mutex), que bloquean el acceso a datos compartidos:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // bloqueo pesimista
    defer mu.Unlock()
    // sección crítica
}

Este enfoque garantiza que solo una goroutine puede modificar los datos en un momento dado, pero puede reducir el paralelismo y causar bloqueos.