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