Junior — Middle
Aké typy implementácie paralelných úloh poznáte?
sobes.tech AI
Odpoveď od AI
V jazyku Go je možné paralelné úlohy implementovať viacerými spôsobmi:
-
Gorutiny — ľahké vlákna, ktoré sa spúšťajú pomocou kľúčového slova
go. Umožňujú paralelné vykonávanie funkcií. -
Kanály — slúžia na komunikáciu a synchronizáciu medzi gorutinami, umožňujú bezpečný prenos dát.
-
Pooly pracovníkov — skupina gorútin, ktoré berú úlohy z fronty a spracovávajú ich, čím pomáhajú kontrolovať počet súčasne bežiacich gorútin.
-
sync.WaitGroup — na čakanie na dokončenie skupiny gorútin.
Príklad spustenia gorutiny a odoslania dát cez kanál:
ch := make(chan int)
// Spustenie gorutiny
go func() {
ch <- 42 // odoslanie hodnoty do kanála
}()
// Prijatie hodnoty z kanála
val := <-ch
fmt.Println(val)