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