Sobes.tech
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.