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
}