Sobes.tech
Junior — Middle

Hoe wordt een nieuwe goroutine geïnitialiseerd en uitgevoerd in een programma?

sobes.tech AI

Antwoord van AI

In Go wordt een nieuwe goroutine gemaakt met het sleutelwoord go, gevolgd door het aanroepen van een functie of methode. Dit creëert een lichte uitvoeringsstroom die parallel werkt aan het hoofdprogramma.

De initialisatie en het starten van een goroutine gebeurt als volgt:

  1. go wordt vóór de functie aangeroepen: go myFunction().
  2. De Go scheduler creëert een nieuwe goroutine en plaatst deze in de wachtrij voor uitvoering.
  3. De goroutine begint asynchroon uit te voeren, onafhankelijk van het hoofdprogramma.

Voorbeeld:

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

func main() {
    go sayHello() // start de goroutine
    fmt.Println("Hallo vanaf main")
    time.Sleep(time.Second) // geeft de goroutine tijd om te voltooien
}

Het is belangrijk om te onthouden dat goroutines zeer licht zijn in vergelijking met OS-threads, en dat hun planning en context-switching worden beheerd door de Go-runtime, wat een efficiënt gebruik van bronnen mogelijk maakt.