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