Junior — Middle
Map түзүмү жана Mutex механизми аркылуу жалпы ресурска кирүүнү кантип синхрондоштурууга болот?
sobes.tech AI
AIден жооп
Go тилинде жалпы Map структурасына кирүүнү синхрондоштуруу үчүн көбүнесе mutex (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ке окуу же жазуу алдында mutexти бөгөттөйбүз, бул жарыш шарттарын алдын алууга жана бир убакта иштөө шартында туура иштешти камсыз кылууга жардам берет.