Junior — Middle
Come vengono implementati i calcoli paralleli nel linguaggio Go?
sobes.tech AI
Risposta dell'AI
Nel linguaggio Go, i calcoli paralleli vengono implementati utilizzando le goroutine (goroutines) e i canali (channels).
Le goroutine sono thread leggeri avviati con la parola chiave go. Permettono di eseguire funzioni in modo asincrono e parallelo.
Esempio di avvio parallelo di due funzioni:
func compito(id int) {
fmt.Printf("Compito %d avviato\n", id)
// simulazione di lavoro
time.Sleep(time.Second)
fmt.Printf("Compito %d terminato\n", id)
}
func main() {
go compito(1)
go compito(2)
time.Sleep(2 * time.Second) // per permettere alle goroutine di terminare
}
I canali vengono usati per sincronizzare e trasferire dati tra le goroutine, consentendo uno scambio di informazioni sicuro senza blocchi.
In questo modo, Go fornisce strumenti semplici ed efficaci per organizzare calcoli paralleli.