Junior — Middle
Ինչպե՞ս սինխրոնիզացնել ընդհանուր ռեսուրսի հասանելիությունը Map կառուցվածքի և Mutex մեխանիզմի միջոցով։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում ընդհանուր Map կառուցվածքի մուտք գործելու սինխրոնիզացման համար սովորաբար օգտագործվում է մուտեքս (sync.Mutex), քանի որ map-ը միաժամանակյա անվտանգ չէ:
Օրինակ:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // մուտքագրման մուտք
sharedMap[key] = value
mu.Unlock() // բացում է մուտքագրման մուտքը
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Այս կերպ, նախքան Map-ում կարդալը կամ գրելն, մենք մուտքագրում ենք մուտեքսը, որպեսզի կանխենք մրցակցության պայմանները և ապահովենք ճիշտ աշխատանքը միաժամանակյա միջավայրում։