Sobes.tech
Junior — Middle

Jaké typy implementace paralelních úkolů znáte?

sobes.tech AI

Odpověď od AI

V jazyce Go lze paralelní úkoly implementovat několika způsoby:

  • Gorutiny — lehké vlákna, která se spouštějí pomocí klíčového slova go. Umožňují paralelní provádění funkcí.

  • Kanály — slouží k komunikaci a synchronizaci mezi gorutiny, umožňují bezpečný přenos dat.

  • Pooly pracovníků — skupina gorutin, které berou úkoly z fronty a zpracovávají je, což pomáhá řídit počet současně běžících gorutin.

  • sync.WaitGroup — pro čekání na dokončení skupiny gorutin.

Příklad spuštění gorutiny a přenosu dat přes kanál:

ch := make(chan int)
// Spuštění gorutiny
go func() {
    ch <- 42 // odeslání hodnoty do kanálu
}()
// Přijímání hodnoty z kanálu
val := <-ch
fmt.Println(val)