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.