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