Sobes.tech
Junior — Middle

Quel est le rôle et la fonction de la structure WaitGroup lors du développement en Go?

sobes.tech IA

Réponse de l'IA

En Go, la structure WaitGroup est utilisée pour synchroniser plusieurs goroutines. Elle permet à la goroutine principale d’attendre la fin d’un groupe d’autres goroutines.

Méthodes principales :

  • Add(int) : augmente le compteur des goroutines attendues.
  • Done() : diminue le compteur de 1, appelée à la fin d’une goroutine.
  • Wait() : bloque l’exécution jusqu’à ce que le compteur atteigne 0.

Exemple d’utilisation :

var wg sync.WaitGroup
wg.Add(2) // attend 2 goroutines

go func() {
    defer wg.Done()
    // travail de la goroutine 1
}()

go func() {
    defer wg.Done()
    // travail de la goroutine 2
}()

wg.Wait() // attend la fin des deux goroutines

Ainsi, WaitGroup aide à gérer correctement l’exécution parallèle et l’attente de la fin des tâches.