Sobes.tech
Senior

O que é bloqueio pessimista?

sobes.tech IA

Resposta da IA

O bloqueio pessimista é uma abordagem para gerir o acesso concorrente aos dados, na qual o recurso é bloqueado imediatamente no início da operação para evitar conflitos. Ou seja, quando uma transação quer modificar dados, ela adquire um bloqueio, e outras transações aguardam até que o bloqueio seja libertado.

Em Go, isto pode ser implementado usando mutexes (sync.Mutex), que bloqueiam o acesso a dados partilhados:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // bloqueio pessimista
    defer mu.Unlock()
    // secção crítica
}

Esta abordagem garante que apenas uma goroutine pode modificar os dados de cada vez, mas pode levar a uma redução do paralelismo e bloqueios.