Sobes.tech
Junior — Middle

Kun je uitleggen wat een mutex (mutual exclusion) is en hoe het werkt?

sobes.tech AI

Antwoord van AI

Mutual exclusion (Mutex) is een synchronisatie-mechanisme dat garandeert dat op elk moment slechts één goroutine (draad) toegang kan krijgen tot een bepaalde bron of kritieke sectie van de code.

In Go wordt hiervoor het type sync.Mutex gebruikt. Wanneer een goroutine Lock() aanroept, blokkeert deze de mutex, en andere goroutines die proberen Lock() aan te roepen, wachten totdat de mutex wordt ontgrendeld door Unlock().

Voorbeeld:

var mu sync.Mutex
var counter int

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

In dit voorbeeld verhoogt increment veilig de waarde van counter, waardoor gelijktijdige toegang door meerdere goroutines wordt voorkomen.