Sobes.tech
Senior

Kas yra pesimistinis blokavimas?

sobes.tech AI

Atsakymas iš AI

Pesimistinis užraktas yra požiūris į konkurencinio prieigos valdymą prie duomenų, kai išteklius iškart užrakinamas operacijos pradžioje, siekiant išvengti konfliktų. Kitaip tariant, kai transakcija nori pakeisti duomenis, ji įgyja užraktą, ir kitos transakcijos laukia, kol užraktas bus atlaisvintas.

Go kalboje tai gali būti įgyvendinta naudojant mutexus (sync.Mutex), kurie blokuoja prieigą prie bendrų duomenų:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // pesimistinis užraktas
    defer mu.Unlock()
    // kritinė sekcija
}

Šis požiūris užtikrina, kad tik viena gorutina gali keisti duomenis vienu metu, tačiau gali sumažinti paralelizmą ir sukelti užrakinimus.