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)