Sobes.tech
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.