Sobes.tech
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
}