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.