Junior — Middle
Skaidrojiet, kas ir bloķēšana (Lock) mutex kontekstā un kam tā tiek izmantota.
sobes.tech AI
Atbilde no AI
Bloķēšana (Lock) ir sinhronizācijas mehānisms, ko izmanto, lai novērstu vairāku pavedienu vai gorutīnu vienlaicīgu piekļuvi koplietotam resursam, lai izvairītos no sacensību stāvokļiem un nodrošinātu datu pareizību.
Mutex kontekstā bloķēšana nozīmē, ka, kad viens pavediens (lock) aizslēdz mutex, citi pavedieni, kas mēģina to aizslēgt, gaidīs, līdz pirmais to atbrīvos (unlock).
Piemērs Go valodā:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // aizslēgt mutex
counter++ // kritiskā sadaļa
mu.Unlock() // atslēgt mutex
}
Tādējādi, bloķēšana garantē, ka tikai viens pavediens vienlaikus izpildīs kritisko koda sadaļu.