Junior — Middle
Jak odlišit kanály používané pro přenos dat mezi vlákny od gorutin z hlediska jejich účelu a fungování?
sobes.tech AI
Odpověď od AI
V jazyce Go jsou gorutiny lehké vlákna, která se spouštějí pomocí klíčového slova go. Spouštějí funkce nebo metody paralelně.
Kanály jsou prostředky komunikace mezi gorutiny, umožňující bezpečný přenos dat a synchronizaci jejich práce.
Hlavní rozdíly:
- Gorutiny jsou vykonavatelé kódu, spouštějí paralelní úkoly.
- Kanály jsou kanály přenosu dat mezi gorutiny, zajišťují výměnu zpráv a synchronizaci.
Příklad:
func() {
ch <- 42 // odeslání hodnoty do kanálu
}()
hodnota := <-ch // přijetí hodnoty z kanálu
Tímto jsou gorutiny "pracovníci" a kanály jsou "pošta" pro výměnu zpráv mezi nimi.