Middle+
Parlami di WaitGroup in Go.
sobes.tech AI
Risposta dell'AI
In Go, sync.WaitGroup viene utilizzato per attendere il completamento di un gruppo di goroutine. È un modo comodo per sincronizzare compiti paralleli.
Metodi principali:
Add(int)— aumenta il contatore delle goroutine attese.Done()— diminuisce il contatore, chiamato quando una goroutine termina.Wait()— blocca l'esecuzione finché il contatore non diventa zero.
Esempio di utilizzo:
var wg sync.WaitGroup
wg.Add(2) // aspettiamo 2 goroutine
go func() {
defer wg.Done()
// lavoro della prima goroutine
}()
go func() {
defer wg.Done()
// lavoro della seconda goroutine
}()
wg.Wait() // aspettiamo che entrambe finiscano
In questo modo, WaitGroup aiuta a controllare il completamento di operazioni parallele.