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.