Sobes.tech
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.