Junior
Wat in Go zorgt voor thread safety?
sobes.tech AI
Antwoord van AI
Gelijkwaardigheid in Go wordt verzekerd door verschillende mechanismen:
- Goroutines — lichte threads die het uitvoeren van code parallel mogelijk maken.
- Kanalen — het belangrijkste instrument voor veilige gegevensuitwisseling tussen goroutines zonder gedeelde variabelen.
- Pakket sync — bevat synchronisatie-primitieven zoals
Mutexom kritieke secties te blokkeren,RWMutexom lees- en schrijfsleutels te scheiden, enWaitGroupom te wachten op de voltooiing van een groep goroutines.
Voorbeeld van het gebruik van een mutex om een gedeelde bron te beschermen:
import (
"sync"
)
var mu sync.Mutex
var teller int
func verhoog() {
mu.Lock()
defer mu.Unlock()
teller++
}
Op deze manier wordt de veiligheid in gelijktijdigheid in Go bereikt door correct gebruik van goroutines, kanalen en synchronisatie-primitieven uit het sync-pakket.