Sobes.tech
Junior — Middle

Quali sono i vantaggi dell'utilizzo delle goroutine rispetto ai thread?

sobes.tech AI

Risposta dell'AI

Le goroutine in Go sono thread leggeri gestiti dal runtime di Go, non dal sistema operativo. I loro vantaggi rispetto ai thread classici:

  • Consumo di memoria inferiore: Le goroutine occupano pochi kilobyte di memoria, mentre i thread — megabyte.
  • Creazione e switch rapido: L'avvio e il cambio tra goroutine avviene molto più velocemente.
  • Semplicità di sincronizzazione: Go fornisce canali per scambiare dati in modo sicuro tra le goroutine, semplificando la programmazione concorrente.
  • Scalabilità: È possibile avviare migliaia o anche milioni di goroutine contemporaneamente.

Esempio di creazione di una goroutine:

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

func main() {
    go sayHello() // avvia la goroutine
    time.Sleep(time.Second) // attende affinché la goroutine venga eseguita
}