Junior — Middle
Vysvětlete, co je zámek (Lock) v kontextu mutexu a k čemu slouží.
sobes.tech AI
Odpověď od AI
Zámek (Lock) je mechanismus synchronizace, který se používá k zabránění současnému přístupu více vláken nebo gorutin ke sdílenému zdroji, aby se předešlo závodním podmínkám a zajistila správnost dat.
V kontextu mutexu znamená zámek, že když jedno vlákno uzamkne (lock) mutex, ostatní vlákna, která se ho pokusí uzamknout, budou čekat, dokud první neuvolní (unlock) mutex.
Příklad v Go:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // uzamknout mutex
counter++ // kritická sekce
mu.Unlock() // odemknout mutex
}
Tímto způsobem zámek zajišťuje, že pouze jedno vlákno v daném okamžiku provádí kritickou sekci kódu.