Sobes.tech
Senior

Cos'è il blocco pessimista?

sobes.tech AI

Risposta dell'AI

Il blocco pessimista è un approccio alla gestione dell'accesso concorrente ai dati, in cui la risorsa viene bloccata immediatamente all'inizio dell'operazione per prevenire conflitti. Cioè, quando una transazione vuole modificare i dati, acquisisce un blocco, e altre transazioni attendono che il blocco venga rilasciato.

In Go, questo può essere implementato usando mutex (sync.Mutex), che bloccano l'accesso ai dati condivisi:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // blocco pessimista
    defer mu.Unlock()
    // sezione critica
}

Questo approccio garantisce che solo una goroutine possa modificare i dati alla volta, ma può ridurre il parallelismo e causare blocchi.