Sobes.tech
Junior — Middle

Welke soorten mutual exclusion lock-mechanismen gebruik je in je projecten?

sobes.tech AI

Antwoord van AI

In Go gebruik ik meestal het standaardtype sync.Mutex om onderlinge uitsluiting te implementeren. Het is eenvoudig te gebruiken en blokkeert effectief kritieke code-secties.

Daarnaast gebruik ik sync.RWMutex wanneer ik toegang tot lezen en schrijven wil scheiden: meerdere goroutines kunnen gelijktijdig lezen, maar schrijven blokkeert iedereen.

In sommige gevallen gebruik ik kanalen (channels) voor synchronisatie, wat het mogelijk maakt om expliciete blokkades te vermijden en de code meer declaratief te maken.

Voorbeeld met sync.Mutex:

var mu sync.Mutex
var counter int

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

De keuze van het mechanisme hangt dus af van de specifieke taak en prestatie-eisen.