Junior — Middle
Welke taken lost het package sync op in de programmeertaal Go?
sobes.tech AI
Antwoord van AI
De sync-package in de programmeertaal Go biedt synchronisatie-primitieven voor het beheren van gelijktijdige toegang tot bronnen en het coördineren van goroutines.
De belangrijkste taken die de sync-package oplost:
- Mutex (
Mutex) — ter bescherming van kritieke secties en het voorkomen van gelijktijdige toegang tot gedeelde gegevens. - RWMutex — mutex met scheiding tussen lezen en schrijven, waardoor meerdere goroutines gelijktijdig gegevens kunnen lezen, maar schrijven wordt geblokkeerd.
- WaitGroup — om te wachten tot een groep goroutines klaar is.
- Once — om een initialisatie slechts één keer uit te voeren.
Voorbeeld van het gebruik van Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Op deze manier helpt de sync-package om veilig te werken met gelijktijdigheid en racecondities te voorkomen.