Junior — Middle
Avez-vous utilisé le mécanisme de synchronisation waitgroup lors de la mise en œuvre de votre programme?
sobes.tech IA
Réponse de l'IA
Oui, en Go, le mécanisme sync.WaitGroup est souvent utilisé pour synchroniser plusieurs goroutines. Il permet à la goroutine principale d'attendre la fin d'un ensemble de tâches parallèles.
Exemple d'utilisation :
var wg sync.WaitGroup
wg.Add(3) // attend 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signaler la fin
fmt.Printf("Goroutine %d en cours d'exécution\n", id)
// un travail quelconque
}(i)
}
wg.Wait() // attendre que tous les Done soient appelés
fmt.Println("Toutes les goroutines sont terminées")
Ainsi, WaitGroup aide à gérer correctement le parallélisme et garantit que le programme ne se termine pas prématurément.