Sobes.tech
Middle — Senior

Jaká je role metody Wg.Wait při synchronizaci vláken?

sobes.tech AI

Odpověď od AI

Metoda Wg.Wait() z balíčku sync v jazyce Go se používá k synchronizaci více gorutin. Zablokuje provádění volající gorutiny, dokud čítač WaitGroup nedosáhne nuly, tj. dokud všechny gorutiny přidané přes Add() nevolají Done().

Příklad:

var wg sync.WaitGroup
wg.Add(2)

goroutine() {
    defer wg.Done()
    // práce první gorutiny
}()

goroutine() {
    defer wg.Done()
    // práce druhé gorutiny
}()

wg.Wait() // Čekáme na dokončení obou gorutin

Tímto způsobem Wg.Wait() zaručuje, že program nepokračuje, dokud všechny paralelní úkoly nejsou dokončeny.