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