Sobes.tech
Junior — Middle

Erklären Sie, was eine Sperre (Lock) im Kontext eines Mutex ist und wofür sie verwendet wird.

sobes.tech KI

Antwort von AI

Der Lock ist ein Synchronisationsmechanismus, der verwendet wird, um zu verhindern, dass mehrere Threads oder Goroutines gleichzeitig auf eine gemeinsame Ressource zugreifen, um Race Conditions zu vermeiden und die Datenintegrität zu gewährleisten.

Im Kontext eines Mutex bedeutet das Lock, dass wenn ein Thread einen Mutex sperrt (lock), andere Threads, die versuchen, denselben Mutex zu sperren, warten, bis der erste Thread ihn freigibt (unlock).

Beispiel in Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()         // Sperre den Mutex
    counter++         // kritischer Abschnitt
    mu.Unlock()       // entsperre den Mutex
}

Auf diese Weise stellt der Lock sicher, dass nur ein Thread den kritischen Abschnitt des Codes zu einem Zeitpunkt ausführt.