Sobes.tech
Junior — Middle

Мутекси (Mutex) чиста чӣ гуна аст ва чӣ гуна кор мекунад?

sobes.tech AI

Ҷавоб аз AI

Mutual exclusion (Mutex) — бу механизм синхронлаштириш бўлиб, у белгиланган вақтда фақат бир гуруҳ (жараён) муайян ресурс ёки коднинг критик бўлимига кириш ҳуқуқига эга бўлишини кафолатлайди.

Go тилида бу учун sync.Mutex тури қўлланилади. Гуруҳ Lock() чақирганда, у мютексни блоклайди, ва бошқа гуруҳлар Lock() чақиришга уринишганда, улар мютекс Unlock() билан очилгунча кутадилар.

Масалан:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

Бу мисолда, increment хавфсиз равишда counter қийматини оширади, бир вақтнинг ўзида бир нечта гуруҳнинг киришини олдини олади.