Sobes.tech
Junior — Middle

Kannst du erklären, was eine Mutex (gegenseitiger Ausschluss) ist und wie sie funktioniert?

sobes.tech KI

Antwort von AI

Mutual Exclusion (Mutex) ist ein Synchronisationsmechanismus, der garantiert, dass zu einem bestimmten Zeitpunkt nur eine Goroutine (Thread) Zugriff auf eine Ressource oder einen kritischen Abschnitt des Codes hat.

In Go wird dafür der Typ sync.Mutex verwendet. Wenn eine Goroutine Lock() aufruft, sperrt sie den Mutex, und andere Goroutines, die versuchen Lock() aufzurufen, warten, bis der Mutex durch Unlock() freigegeben wird.

Beispiel:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

In diesem Beispiel erhöht increment sicher den Wert von counter, indem es gleichzeitigen Zugriff von mehreren Goroutines verhindert.