Per attendere che più goroutine terminino, possiamo utilizzare un wait group. |
|
![]() ![]()
|
|
|
|
Questa è la funzione che eseguiremo in ogni goroutine. |
|
Aspettiamo per simulare un’operazione costosa. |
|
|
|
Questo WaitGroup viene utilizzato per attendere che tutte le goroutine avviate qui terminino. Nota: se un WaitGroup viene passato esplicitamente alle funzioni, dovrebbe essere fatto per puntatore. |
|
Avvia diverse goroutine utilizzando |
|
Blocca fino a quando tutte le goroutine avviate da |
|
Nota che questo approccio non ha un modo diretto per propagare errori dai worker. Per casi d’uso più avanzati, considera l’utilizzo del pacchetto errgroup. |
|
|
|
L’ordine di avvio e completamento dei worker sarà probabilmente diverso per ogni esecuzione. |
Prossimo esempio: Rate Limiting.