Sobes.tech
Junior — Middle

Wie kann man den Zugriff auf eine gemeinsame Ressource mit einer Map-Struktur und einem Mutex-Mechanismus synchronisieren?

sobes.tech KI

Antwort von AI

In Go wird zum Synchronisieren des Zugriffs auf eine gemeinsame Map-Struktur in der Regel ein Mutex (sync.Mutex) verwendet, da map nicht threadsicher ist.

Beispiel:

import (
    "sync"
)

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

func writeToMap(key string, value int) {
    mu.Lock()           // Zugriff sperren
    sharedMap[key] = value
    mu.Unlock()         // entsperren
}

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

Auf diese Weise sperren wir vor dem Lesen oder Schreiben in die Map den Mutex, um Race Conditions zu vermeiden und einen korrekten Betrieb in einer konkurrierenden Umgebung zu gewährleisten.