Sobes.tech
Junior — Middle

Quels sont les moyens de transmission de données utilisés lors de l'interaction entre goroutines en Go?

sobes.tech IA

Réponse de l'IA

En Go, les principales méthodes de communication entre goroutines (fils légers) sont :

  1. Canaux (channels) — la méthode principale et recommandée. Les canaux permettent de transmettre des valeurs en toute sécurité entre goroutines, en assurant synchronisation et échange de données.
ch := make(chan int)
go func() {
    ch <- 42 // envoi de la valeur dans le canal
}()
value := <-ch // réception de la valeur du canal
  1. Variables partagées avec synchronisation — utilisation de données partagées avec des mutex (sync.Mutex) ou autres primitives de synchronisation pour éviter les conditions de course.

  2. Package sync — offre divers outils pour coordonner les goroutines, comme WaitGroup, Cond.

Cependant, en Go, il est courant d’éviter l’accès partagé à la mémoire et de privilégier la transmission de données via des canaux, ce qui simplifie le développement et augmente la sécurité.