Junior — Middle
Ümumi resursa giriş üçün Map strukturu və Mutex mexanizmi ilə necə sinxronizasiya etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, ümumi Map strukturuna girişləri sinxronlaşdırmaq üçün adətən mutex (sync.Mutex) istifadə olunur, çünki map çoxluq təhlükəsiz deyil.
Nümunə:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // girişə kilid qoyur
sharedMap[key] = value
mu.Unlock() // kilidi açır
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Bu şəkildə, map-ə oxuma və ya yazma əməliyyatlarından əvvəl mutex kilidlənir, bu da yarış şəraitlərinin qarşısını alır və çoxlu mühitdə düzgün işləməni təmin edir.