Sobes.tech
Junior — Middle

Comment l'échange d'informations entre les goroutines en Go est-il effectué?

sobes.tech IA

Réponse de l'IA

En Go, l’échange d’informations entre goroutines se fait principalement par le biais de canaux (channels). Les canaux permettent de transmettre des données en toute sécurité entre goroutines, en assurant la synchronisation et en évitant les conditions de course.

Exemple d’utilisation d’un canal :

ch := make(chan int)

// Envoi de données dans une goroutine
go func() {
    ch <- 42
}()

// Réception de données dans la goroutine principale
value := <-ch
fmt.Println(value) // Affichera 42

Les canaux peuvent être tamponnés ou non tamponnés, ce qui influence le comportement de blocage lors de l’envoi et de la réception. De plus, pour l’échange, d’autres mécanismes peuvent être utilisés, comme des variables communes avec des mutex, mais les canaux sont la principale méthode idiomatique de communication en Go.