Sobes.tech
Junior — Middle

Hoe wordt het werk van meerdere goroutines in de toepassing geïmplementeerd en beheerd?

sobes.tech AI

Antwoord van AI

In Go zijn goroutines lichte threads die beheerd worden door de Go-runtime, niet door het besturingssysteem. Wanneer een applicatie veel goroutines aanmaakt, plant de Go-runtime hun uitvoering op een beperkt aantal systeemthreads (M), gebruikmakend van het M:N-model (M systeemthreads voor N goroutines).

De Go-scheduler verdeelt de goroutines over de threads, wisselt zeer snel en efficiënt van context. Dit maakt het mogelijk om duizenden en zelfs miljoenen goroutines uit te voeren met lage geheugen- en tijdskosten.

Voorbeeld van het maken van een goroutine:

func sayHello() {
    fmt.Println("Hallo vanaf de goroutine")
}

func main() {
    go sayHello() // start de goroutine
    time.Sleep(time.Second) // geef de goroutine de tijd om uit te voeren
}