Moeten alle goroutines standaard gelijktijdig en parallel worden gestart?
sobes.tech AI
Antwoord van AI
Nee, niet alle goroutines hoeven standaard gelijktijdig en parallel te worden uitgevoerd. Goroutines zijn lichte threads die door de scheduler van Go worden gepland.
Wanneer je meerdere goroutines start, kunnen ze sequentieel of parallel worden uitgevoerd, afhankelijk van het beschikbare aantal systeemthreads (GOMAXPROCS) en de huidige belasting.
Standaard, als GOMAXPROCS gelijk is aan 1, worden goroutines concurrerend uitgevoerd, maar niet parallel — dat wil zeggen, de switch tussen hen gebeurt op schedulerniveau, maar slechts één wordt tegelijk uitgevoerd.
Om echte parallelisme te bereiken, moet je GOMAXPROCS verhogen (meestal gelijk aan het aantal processor cores). Dan kunnen meerdere goroutines gelijktijdig op verschillende cores worden uitgevoerd.