Sobes.tech
Middle — Senior

Qual è il ruolo del metodo Wg.Wait nella sincronizzazione dei thread?

sobes.tech AI

Risposta dell'AI

Il metodo Wg.Wait() del pacchetto sync in Go viene utilizzato per sincronizzare più goroutine. Blocca l'esecuzione della goroutine chiamante fino a quando il contatore WaitGroup non diventa zero, cioè fino a quando tutte le goroutine aggiunte tramite Add() non chiamano Done().

Esempio:

var wg sync.WaitGroup
wg.Add(2)

goroutine() {
    defer wg.Done()
    // lavoro della prima goroutine
}()

goroutine() {
    defer wg.Done()
    // lavoro della seconda goroutine
}()

wg.Wait() // Attende il completamento di entrambe le goroutine

In questo modo, Wg.Wait() garantisce che il programma non prosegua finché tutte le attività parallele non sono terminate.