Junior — Middle
Leg uit wat een lock (vergrendeling) is in de context van een mutex en waar het voor wordt gebruikt.
sobes.tech AI
Antwoord van AI
De Lock is een synchronisatie-mechanisme dat wordt gebruikt om te voorkomen dat meerdere threads of goroutines gelijktijdig toegang krijgen tot een gedeelde bron, om racecondities te voorkomen en de gegevenscorrectheid te waarborgen.
In de context van een mutex betekent de lock dat wanneer één thread een mutex vergrendelt (lock), andere threads die proberen hetzelfde mutex te vergrendelen, wachten totdat de eerste het vrijgeeft (unlock).
Voorbeeld in Go:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // vergrendel de mutex
counter++ // kritieke sectie
mu.Unlock() // ontgrendel de mutex
}
Op deze manier garandeert de lock dat slechts één thread op een bepaald moment de kritieke sectie van de code uitvoert.