Junior — Middle
Při implementaci svého programu jste použili mechanismus synchronizace waitgroup?
sobes.tech AI
Odpověď od AI
Ano, v jazyce Go se mechanismus sync.WaitGroup často používá k synchronizaci více gorutin. Umožňuje hlavní gorutině čekat na dokončení sady paralelních úkolů.
Příklad použití:
var wg sync.WaitGroup
wg.Add(3) // čekáme na 3 gorutiny
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signalizujeme dokončení
fmt.Printf("Gorutina %d běží\n", id)
// nějaká práce
}(i)
}
wg.Wait() // čekáme, dokud všechny volání Done neproběhnou
fmt.Println("Všechny gorutiny jsou dokončeny")
Tímto způsobem pomáhá WaitGroup správně řídit paralelismus a zajišťuje, že program neskončí dříve, než má.