Sobes.tech
Junior — Middle

Počas implementácie svojho programu ste použili mechanizmus synchronizácie waitgroup?

sobes.tech AI

Odpoveď od AI

Áno, v jazyku Go sa mechanizmus sync.WaitGroup často používa na synchronizáciu viacerých gorútin. Umožňuje hlavnej gorutine čakať na dokončenie sady paralelných úloh.

Príklad použitia:

var wg sync.WaitGroup

wg.Add(3) // čakáme na 3 gorutiny

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // signalizujeme ukončenie
        fmt.Printf("Gorutina %d beží\n", id)
        // nejaká práca
    }(i)
}

wg.Wait() // čakáme, kým sa všetky volania Done neukončia
fmt.Println("Všetky gorutiny sú ukončené")

Týmto spôsobom pomáha WaitGroup správne riadiť paralelizmus a zabezpečuje, že program sa neskončí skôr, ako má.