1
The important and duly answer
Pak nesmí takové výpočty provádět v hlavním vlákně, ale musí je volat z hlavního vlákna asynchronně s callback funkcí a ono se to zparalelizuje samo.
Ale problém pak může být, že pak může přestat něco fungovat.
Nojo, jenže ten, na koho reaguješ, právě popisoval situaci, kdy "hodně počítá", tj. to vlákno se nefláká a nečeká na I/O, ale opravdu něco počítá - a takových vláken dokonce má víc než jedno. A v tu chvíli najednou nestačí "niekde dať await a je to vyriešené".Pak nesmí takové výpočty provádět v hlavním vlákně, ale musí je volat z hlavního vlákna asynchronně s callback funkcí a ono se to zparalelizuje samo.
Práve v tom je krása event loop-u, že sa to blokovať nebude. Z pohľadu programátora (aplikačného kódu) dokáže jedno vlákno obsluhovať množstvo "paralelných" requestov. Je to vďaka async/await syntaxi. Jasné, že na pozadí sa blokujúce operácie (čítanie/zápis na disk...) udejú v samostatných vlákach, aby sa využil potenciál viacerých jadier. Aplikácia to však nevidí a programátor môže existenciu vlákien úplne abstrahovať. Jedinou výnikou je, ak máte dlhú časť kódu bez await a skutočne začnete blokovať vlákno. Vtedy tam stačí niekde dať await a je to vyriešené. Za mňa výborný trade-off.Nojo, jenže ten, na koho reaguješ, právě popisoval situaci, kdy "hodně počítá", tj. to vlákno se nefláká a nečeká na I/O, ale opravdu něco počítá - a takových vláken dokonce má víc než jedno. A v tu chvíli najednou nestačí "niekde dať await a je to vyriešené".