Junior — Middle
Cosa rende le goroutine più efficienti rispetto ai thread di implementazione tradizionale?
sobes.tech AI
Risposta dell'AI
Le goroutine in Go sono più efficienti rispetto ai thread tradizionali grazie a diverse caratteristiche chiave:
- Leggerezza: Le goroutine occupano pochissima memoria (di solito circa 2 KB di stack), mentre i thread di sistema richiedono molto più spazio.
- Scheduler a livello di linguaggio: Go ha il proprio scheduler di goroutine, che distribuisce efficacemente la loro esecuzione sui thread di sistema, consentendo di eseguire migliaia di goroutine contemporaneamente senza costi significativi.
- Creazione e cambio di contesto rapidi: La creazione e il cambio tra goroutine avviene molto più velocemente rispetto ai thread OS, riducendo i costi del multitasking.
Esempio di creazione di una goroutine:
func sayHello() {
fmt.Println("Ciao dalla goroutine")
}
func main() {
go sayHello() // avvia la goroutine
time.Sleep(time.Second) // aspetta che la goroutine venga eseguita
}