Junior — Middle
Kuidas on realiseeritud vastastikuse välistamise mehhanism Mutex abil Go keeles?
sobes.tech AI
Vastus AI-lt
Go keeles, vastastikuse välistuse (mutex) rakendamiseks kasutatakse tüüpi sync.Mutex. See võimaldab kaitsta kriitilisi koodilõike samaaegse juurdepääsu eest mitmest gorutist, vältides võistlusolukordi.
Peamised toimingud:
Lock()— lukustab mutexi, takistades teiste gorutide juurdepääsu.Unlock()— avab mutexi, võimaldades teiste gorutide jätkata.
Kasutusnäide:
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
mu.Lock() // Lukustab mutexi
counter++
fmt.Println("Loendur:", counter)
mu.Unlock() // Avab mutexi
}
Mitme-joonelises keskkonnas tagab mutex, et ainult üks gorutine täidab koodi Lock() ja Unlock() vahel korraga, vältides jagatud andmete valesid muudatusi.