Sobes.tech
Junior — Middle

Vysvetlite, čo je zámok (Lock) v kontexte mutexu a na čo sa používa.

sobes.tech AI

Odpoveď od AI

Zámok (Lock) je mechanizmus synchronizácie, ktorý sa používa na zabránenie súčasnému prístupu viacerých vlákien alebo gorútín ku spoločnému zdroju, aby sa predišlo podmienkam súťaže a zabezpečila správnosť údajov.

V kontexte mutexu znamená zámok, že keď jedno vlákno uzamkne (lock) mutex, ostatné vlákna, ktoré sa ho pokúsia uzamknúť, budú čakať, kým prvé neuvoľní (unlock) mutex.

Príklad v Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()         // uzamknúť mutex
    counter++         // kritická sekcia
    mu.Unlock()       // odomknúť mutex
}

Týmto spôsobom zámok zabezpečuje, že iba jedno vlákno vykonáva kritickú sekciu kódu v danom čase.