Middle
Was ist ein Mutex?
sobes.tech KI
Antwort von AI
Mutex (wechselseitiger Ausschluss) ist ein Synchronisationsmechanismus in Go, der verwendet wird, um gleichzeitigen Zugriff mehrerer Goroutines auf gemeinsame Ressourcen wie Variablen oder Datenstrukturen zu verhindern. Mutex stellt sicher, dass zu jedem Zeitpunkt nur eine Goroutine die Sperre besitzen und den kritischen Abschnitt des Codes ausführen kann.
Beispiel für die Verwendung von sync.Mutex in Go:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
zähler := 0
inkrement := func() {
mu.Lock() // Sperre erwerben
defer mu.Unlock() // Sperre freigeben
zähler++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
inkrement()
}()
}
wg.Wait()
fmt.Println("Zähler:", zähler)
}
Ohne Mutex könnte das Ergebnis aufgrund von Race Conditions inkorrekt sein.