Junior — Middle
Kā sinhronizēt piekļuvi koplietotajam resursam, izmantojot Map struktūru un Mutex mehānismu?
sobes.tech AI
Atbilde no AI
Go valodā, lai sinhronizētu piekļuvi kopīgai Map struktūrai, parasti izmanto mutex (sync.Mutex), jo map nav droša daudzprocesu darbībai.
Piemērs:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // bloķē piekļuvi
sharedMap[key] = value
mu.Unlock() // atbloķē
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Tādējādi, pirms lasīšanas vai rakstīšanas mapē, mēs bloķējam mutex, lai novērstu sacensību apstākļus un nodrošinātu pareizu darbību konkurējošā vidē.