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 қийматини оширади, бир вақтнинг ўзида бир нечта гуруҳнинг киришини олдини олади.