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.