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.