Sobes.tech
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.