Junior — Middle
Wat is het verschil tussen een goroutine en een systeemthread in de context van het uitvoeren van taken?
sobes.tech AI
Antwoord van AI
Een goroutine is een lichte, door de Go-runtime beheerde uitvoeringsunit die zeer weinig geheugen gebruikt en in grote aantallen gelijktijdig kan worden gestart. Een systeemthread is een zwaardere planningseenheid van het besturingssysteem.
Belangrijkste verschillen:
- Goroutines zijn veel lichter qua bronnen dan systeemthreads.
- De planning van goroutines gebeurt binnen de Go-runtime, niet door het OS.
- Duizenden goroutines kunnen gelijktijdig werken, terwijl het aantal systeemthreads meestal lager is vanwege de kosten voor aanmaak en schakelen.
Voorbeeld van het maken van een goroutine:
func taak() {
fmt.Println("Taak wordt uitgevoerd")
}
func main() {
go taak() // start goroutine
time.Sleep(time.Second) // wachten zodat de goroutine kan voltooien
}
Op deze manier maken goroutines het mogelijk om efficiënt veel taken parallel uit te voeren met minder overhead.