Sobes.tech
Junior — Middle

Comment le contrôle de l'exécution et la synchronisation des goroutines dans le programme sont-ils effectués?

sobes.tech IA

Réponse de l'IA

En Go, le contrôle de l'exécution et la synchronisation des goroutines se font généralement à l'aide de :

  • WaitGroup du package sync — permet d'attendre la fin d'un groupe de goroutines.
  • Canaux (channels) — utilisés pour transmettre des données et des signaux entre goroutines, assurant la synchronisation.

Exemple avec WaitGroup :

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // travail de la goroutine
}()
wg.Wait() // attend la fin de la goroutine

Les canaux permettent, par exemple, de transmettre des résultats ou des signaux de fin :

ch := make(chan int)
go func() {
    ch <- 42 // envoi de la valeur
}()
valeur := <-ch // réception de la valeur, synchronise les goroutines

Ainsi, WaitGroup et canaux sont les outils principaux pour le contrôle et la synchronisation des goroutines.