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.