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.