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.