Sobes.tech
Senior

Czym jest blokada pesymistyczna?

sobes.tech AI

Odpowiedź od AI

Pesymistyczne blokowanie to podejście do zarządzania równoczesnym dostępem do danych, w którym zasób jest blokowany od razu na początku operacji, aby zapobiec konfliktom. Oznacza to, że gdy transakcja chce zmienić dane, uzyskuje blokadę, a inne transakcje czekają, aż blokada zostanie zwolniona.

W Go można to zaimplementować za pomocą mutexów (sync.Mutex), które blokują dostęp do współdzielonych danych:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // pesymistyczne blokowanie
    defer mu.Unlock()
    // sekcja krytyczna
}

Takie podejście gwarantuje, że w danym momencie tylko jedna gorutyna może modyfikować dane, ale może to prowadzić do zmniejszenia paralelizmu i blokad.