Sobes.tech
Junior — Middle

Ako sa vykonáva kontrola nad vykonaním a synchronizáciou gorútin v programe?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa kontrola vykonávania a synchronizácia gorútín zvyčajne vykonáva pomocou:

  • WaitGroup z balíka sync — umožňuje čakať na dokončenie skupiny gorútín.
  • Kanálov (channels) — slúžia na prenos dát a signálov medzi gorútinami, zabezpečujúc synchronizáciu.

Príklad s WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // práca gorutiny
}()
wg.Wait() // čaká na dokončenie gorutiny

Kanály umožňujú napríklad prenášať výsledky alebo signály ukončenia:

ch := make(chan int)
go func() {
    ch <- 42 // odoslanie hodnoty
}()
hodnota := <-ch // prijatie hodnoty, synchronizuje gorutiny

Preto sú WaitGroup a kanály hlavnými nástrojmi na kontrolu a synchronizáciu gorútín.