Sobes.tech
Senior

Pourquoi avons-nous besoin de WaitGroup dans cette tâche?

sobes.tech IA

Réponse de l'IA

WaitGroup en Go est utilisé pour synchroniser les goroutines. Dans les tâches où plusieurs goroutines sont lancées, WaitGroup permet au thread principal d’attendre la fin de toutes les goroutines lancées avant de continuer l’exécution. Cela empêche le programme de sortir prématurément ou de passer à l’étape suivante lorsque les opérations en arrière-plan ne sont pas encore terminées.

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
        // travail de la goroutine
        fmt.Println("Goroutine", id, "terminée")
    }(i)
}

wg.Wait() // attendre la fin de toutes les goroutines
fmt.Println("Toutes les goroutines sont terminées")

Ainsi, WaitGroup assure une coordination correcte et évite les courses ou la fin prématurée du programme.