Hlavní navigace

Vlákno názorů k článku Rozhraní, metody, gorutiny a kanály v programovacím jazyku Go od Jaroslav Tulach - Dobrý den, děkuji za úvod do gorutin. Jen...

Článek je starý, nové názory již nelze přidávat.

  • 11. 12. 2018 13:45

    Jaroslav Tulach (neregistrovaný) 141.143.193.---

    Dobrý den, děkuji za úvod do gorutin. Jen stále nemám jasno jaký je vztah mezi gorutinou a vláknem (ve významu pthread? Minule mi otloukli o hlavu, že jsem nepochopil gorutiny. Existuje-li však 1:1 mapování mezi vláknem a gorutinou, tak to je asi tak to samé jako new Thread("", () -> můjkód).start() v Javě. Kde tedy leží to kouzlo efektivity? Děkuji.

  • 11. 12. 2018 14:03

    ivoszz

    Vztah mezi gorutinami a vlákny je typu M : N, to znamená že runtime mapuje M gorutin do N vláken. By default Go runtime alokuje tolik vláken, kolik mu operační systém řekne, že je k dispozici CPU (lze samozřejmě změnit).

    N se na běžných počítačích pohybuje v jednotkách, u M nejsou problém desetitisíce i víc. Velice jednoduché, rychlé a paměťové nenáročné přepnutí kontextu mezi gorutinami je také důvodem, proč má Go jinou volací konvenci, než je zvykem u jiných programovacích jazyků, což zase zvyšuje složitost použití třeba C knihoven.