Junior — Middle
Go тилинде Mutex аркылуу өз ара чыгаруу механизми кандай ишке ашырылат?
sobes.tech AI
AIден жооп
Go тилинде өз ара чыгаруу (mutex) ишке ашыруу үчүн sync.Mutex тиби колдонулат. Ал коддун критикалык бөлүмдөрүн бир нече горутинден бир убакта кирүүдөн коргойт жана жарыш шарттарын алдын алат.
Негизги операциялар:
Lock()— mutexти байлайт, башка горутиндердин киришин бөгөттөйт.Unlock()— mutexти ачат, башка горутиндерге иштөө мүмкүнчүлүгүн берет.
Колдонуу мисалы:
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
mu.Lock() // Mutexти байлайт
counter++
fmt.Println("Санаачык:", counter)
mu.Unlock() // Mutexти ачат
}
Көп жиптүү чөйрөдө mutex бир убакта бир гана горутин Lock() жана Unlock() ортосундагы кодду аткаруусун кепилдейт, бул бөлүшүлгөн маалыматтарды туура эмес өзгөртүүнүн алдын алат.