Sobes.tech
Middle — Senior

Care este rolul metodei Wg.Wait în sincronizarea firelor?

sobes.tech AI

Răspuns de la AI

Metoda Wg.Wait() din pachetul sync în Go este utilizată pentru a sincroniza mai multe goroutine-uri. Blochează execuția goroutine-ului care a apelat până când contorul WaitGroup ajunge la zero, adică până când toate goroutine-urile adăugate prin Add() apelează Done().

Exemplu:

var wg sync.WaitGroup
wg.Add(2)

goroutine() {
    defer wg.Done()
    // lucrarea primei goroutine
}()

goroutine() {
    defer wg.Done()
    // lucrarea celei de-a doua goroutine
}()

wg.Wait() // Așteptăm finalizarea ambelor goroutine-uri

Astfel, Wg.Wait() garantează că programul nu va continua până când toate sarcinile paralele nu sunt finalizate.