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