Junior — Middle
Come avviene l'interazione tra le goroutine in Go?
sobes.tech AI
Risposta dell'AI
In Go, l'interazione tra goroutine avviene tramite i canali (channels). I canali consentono di trasferire dati in modo sicuro tra goroutine e di sincronizzarle.
Punti principali:
- Il canale viene creato con
make(chan Tipo). - Invio nel canale:
ch <- valore. - Ricezione dal canale:
valore := <-ch. - I canali possono essere con buffer o senza buffer.
Esempio:
func main() {
ch := make(chan string)
go func() {
ch <- "ciao dalla goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
In questo modo, i canali garantiscono un'interazione sicura e comoda tra goroutine parallele senza la necessità di usare mutex o altri meccanismi di blocco.