Junior — Middle
Wat maakt goroutines efficiënter in vergelijking met traditionele threads?
sobes.tech AI
Antwoord van AI
Goroutines in Go zijn efficiënter dan traditionele threads dankzij verschillende kernkenmerken:
- Lichtgewicht: Goroutines gebruiken zeer weinig geheugen (meestal ongeveer 2 KB stack), terwijl systeemthreads veel meer geheugen vereisen.
- Taalgebaseerde scheduler: Go heeft zijn eigen scheduler voor goroutines, die hun uitvoering efficiënt verdeelt over systeemthreads, waardoor duizenden goroutines gelijktijdig kunnen draaien zonder significante overhead.
- Snelle creatie en contextswitching: Het aanmaken en wisselen tussen goroutines gaat veel sneller dan tussen OS-threads, wat de multitasking-kosten verlaagt.
Voorbeeld van het maken van een goroutine:
func sayHello() {
fmt.Println("Hallo vanaf goroutine")
}
func main() {
go sayHello() // start goroutine
time.Sleep(time.Second) // wachten zodat goroutine kan uitvoeren
}