Sobes.tech
Junior — Middle

Comment la coordination du travail de plusieurs goroutines est-elle effectuée en Go?

sobes.tech IA

Réponse de l'IA

En Go, la coordination du travail de plusieurs goroutines se fait généralement à l'aide de canaux (channels) et du package sync.

  • Canaux permettent aux goroutines d'échanger des données et de synchroniser l'exécution, bloquant l'expéditeur ou le récepteur jusqu'à ce qu'ils soient prêts.
  • sync.WaitGroup est utilisé pour attendre la fin d'un groupe de goroutines.
  • Mutex et autres primitives de sync assurent un accès sécurisé aux ressources partagées.

Exemple d'utilisation d'un canal pour la synchronisation:

ch := make(chan int)
func() {
    // Effectuer le travail
    ch <- 1 // signal de fin
}()

<-ch // attendre le signal

Ainsi, les canaux et primitives de synchronisation permettent de coordonner efficacement des tâches parallèles.