coroutines vs thready

andy

coroutines vs thready
« kdy: 04. 04. 2015, 12:23:50 »
Ahoj
Hram sa teraz s vibe.d a zarazila ma implementacia asynchronnych volani cez coroutines, takze sa tvaria ako synchronne. Kedze kazde taketo vlakno musi mat niekde udrziavany vlastny stack, nie je to nezmysel? Ma to vobec nejaku vyhodu oproti threadom?
Napriklad v node.js sa preda iba referencia na callback, takze stack moze zaniknut a takychto referencii (s nejakymi tymi clenskymi premennymi) moze byt kludne aj 10k, takze ucel splneny (napr v jave 1M stack na thread by to bolo 10G pamate..). Ako je to implementovane v lua? Je tu vela systemakov a wannabe systemakov, tak snad sa najde niekto kto do toho lepsie vidi :).

Druha vec je, ze som si testoval vykon (vibe.d) a je dost o nicom. Mam taky dojem, ze to pouziva iba 1 thread, ale aj ked to vynasobim poctom jadier, je to stale ovela menej ako jednoduchy servlet v jave. (Toto som robil davnejsie, na presne cisla by som to musel zopakovat..)