Middle — Senior
Akú úlohu má metóda Wg.Wait pri synchronizácii vlákien?
sobes.tech AI
Odpoveď od AI
Metóda Wg.Wait() z balíka sync v jazyku Go sa používa na synchronizáciu viacerých gorutín. Zablokuje vykonávanie volajúcej gorutiny, kým čítač WaitGroup nedosiahne nulu, teda kým všetky gorutiny pridané cez Add() nevolajú Done().
Príklad:
var wg sync.WaitGroup
wg.Add(2)
goroutine() {
defer wg.Done()
// práca prvej gorutiny
}()
goroutine() {
defer wg.Done()
// práca druhej gorutiny
}()
wg.Wait() // Čakáme na dokončenie oboch gorutín
Týmto spôsobom Wg.Wait() garantuje, že program nebude pokračovať, kým všetky paralelné úlohy nie sú dokončené.