Sobes.tech
Junior — Middle

Puoi spiegare cos'è un Wait Group e a cosa serve nella programmazione?

sobes.tech AI

Risposta dell'AI

Wait Group in Go è una struttura del pacchetto sync che viene usata per aspettare che un gruppo di goroutine finisca. Permette alla goroutine principale (o un'altra) di bloccarsi finché tutte le goroutine avviate non terminano il loro lavoro.

Metodi principali:

  • Add(int) — aumenta il contatore delle goroutine attese.
  • Done() — diminuisce il contatore, chiamato al termine di una goroutine.
  • 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

Questo è utile per sincronizzare compiti paralleli ed evitare che il programma termini prematuramente.