Sobes.tech
Junior — Middle

Durante l'implementazione del suo programma, ha utilizzato il meccanismo di sincronizzazione waitgroup?

sobes.tech AI

Risposta dell'AI

Sì, in Go, il meccanismo sync.WaitGroup viene spesso utilizzato per sincronizzare più goroutine. Permette alla goroutine principale di attendere il completamento di un insieme di attività parallele.

Esempio di utilizzo:

var wg sync.WaitGroup

wg.Add(3) // aspettiamo 3 goroutine

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // segnaliamo il completamento
        fmt.Printf("Goroutine %d in esecuzione\n", id)
        // qualche lavoro
    }(i)
}

wg.Wait() // aspettiamo che tutte le chiamate a Done siano completate
fmt.Println("Tutte le goroutine sono terminate")

In questo modo, WaitGroup aiuta a gestire correttamente il parallelismo e garantisce che il programma non termini prima del previsto.