Sobes.tech
Junior — Middle

Hoe synchroniseer je de toegang tot een gedeelde bron met behulp van een Map-structuur en een Mutex-mechanisme?

sobes.tech AI

Antwoord van AI

In Go wordt voor het synchroniseren van de toegang tot een gedeelde Map-structuur meestal een mutex (sync.Mutex) gebruikt, omdat de map niet thread-safe is.

Voorbeeld:

import (
    "sync"
)

var (
    mu sync.Mutex
    sharedMap = make(map[string]int)
)

func writeToMap(key string, value int) {
    mu.Lock()           // vergrendel de toegang
    sharedMap[key] = value
    mu.Unlock()         // ontgrendel
}

func readFromMap(key string) (int, bool) {
    mu.Lock()
    val, ok := sharedMap[key]
    mu.Unlock()
    return val, ok
}

Op deze manier vergrendelen we de mutex voordat we lezen of schrijven in de map, om racecondities te voorkomen en correcte werking in een gelijktijdige omgeving te garanderen.