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