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.