Sobes.tech
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é.