Junior — Middle
Magyarázza el, mi az a zárolás (Lock) a mutex kontextusában, és mire használják.
sobes.tech MI
Válasz az MI-től
A zárolás (Lock) egy szinkronizációs mechanizmus, amelyet arra használnak, hogy megakadályozzák több szál vagy goroutine egyidejű hozzáférését egy közös erőforráshoz, így elkerülve a versenyhelyzeteket és biztosítva az adatok helyességét.
A mutex kontextusában a zárolás azt jelenti, hogy amikor egy szál (lock) zárol egy mutexet, akkor a többi szál, amely megpróbálja ugyanazt a mutexet zárolni, várni fog, amíg az első ki nem oldja (unlock).
Példa Go nyelven:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // zárolja a mutexet
counter++ // kritikus szakasz
mu.Unlock() // oldja fel a zárolást
}
Így a zárolás garantálja, hogy csak egy szál hajtja végre a kód kritikus szakaszát egy adott időben.