Junior — Middle
Qual è il ruolo e la funzione della struttura WaitGroup nello sviluppo in Go?
sobes.tech AI
Risposta dell'AI
In Go, la struttura WaitGroup viene utilizzata per sincronizzare più goroutine. Permette alla goroutine principale di attendere il completamento di un gruppo di altre goroutine.
Metodi principali:
- Add(int): aumenta il contatore delle goroutine attese.
- Done(): diminuisce il contatore di 1, chiamato al termine di una goroutine.
- Wait(): blocca l'esecuzione finché il contatore non diventa 0.
Esempio di utilizzo:
var wg sync.WaitGroup
wg.Add(2) // aspettiamo 2 goroutine
go func() {
defer wg.Done()
// lavoro della goroutine 1
}()
go func() {
defer wg.Done()
// lavoro della goroutine 2
}()
wg.Wait() // aspettiamo che entrambe le goroutine finiscano
In questo modo, WaitGroup aiuta a gestire correttamente l'esecuzione parallela e l'attesa del completamento delle attività.