Sobes.tech
Senior

Cosa si può usare per trasmettere dati tra le goroutine?

sobes.tech AI

Risposta dell'AI

Per trasmettere dati tra goroutine in Go, si utilizzano generalmente i canali (channels). I canali garantiscono una sincronizzazione sicura e la trasmissione di dati, permettendo alle goroutine di scambiare valori senza blocchi espliciti.

Esempio di utilizzo di un canale:

ch := make(chan int)

// Invio di dati in una goroutine
go func() {
    ch <- 42
}()

// Ricezione di dati
value := <-ch
fmt.Println(value) // 42

Oltre ai canali, si può usare la memoria condivisa con sincronizzazione tramite mutex del pacchetto sync, ma i canali sono considerati un modo più idiomatico in Go.