Sobes.tech
Junior — Middle

Come viene inizializzata ed eseguita una nuova goroutine in un programma?

sobes.tech AI

Risposta dell'AI

In Go, una nuova goroutine viene creata usando la parola chiave go, seguita dalla chiamata a una funzione o metodo. Questo crea un leggero thread di esecuzione che funziona in parallelo con il programma principale.

L'inizializzazione e l'avvio di una goroutine avvengono così:

  1. Si chiama go prima della funzione: go myFunction().
  2. Il scheduler di Go crea una nuova goroutine e la mette in coda per l'esecuzione.
  3. La goroutine inizia ad eseguire in modo asincrono, indipendentemente dal programma principale.

Esempio:

func sayHello() {
    fmt.Println("Ciao dalla goroutine")
}

func main() {
    go sayHello() // avvia la goroutine
    fmt.Println("Ciao dal main")
    time.Sleep(time.Second) // dà tempo alla goroutine di completarsi
}

È importante ricordare che le goroutine sono molto leggere rispetto ai thread del sistema operativo, e la loro pianificazione e commutazione sono gestite dal runtime di Go, consentendo un uso efficiente delle risorse.