Junior — Middle
Kako sinhronizovati pristup zajedničkom resursu pomoću strukture Map i mehanizma Mutex?
sobes.tech АИ
Одговор од АИ
U Go jeziku, za sinhronizaciju pristupa zajedničkoj strukturi Map, obično se koristi mutex (sync.Mutex), jer map nije sigurnosno za višestruki pristup.
Primer:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // zaključava pristup
sharedMap[key] = value
mu.Unlock() // otključava
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Na ovaj način, pre čitanja ili pisanja u mapu, zaključavamo mutex kako bismo izbegli uslove trke i obezbedili ispravan rad u konkurentnom okruženju.