421
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 22. 04. 2017, 22:09:46 »Ne, nepoužívá.Má nějakou zvláštní výhodu node.js? Chápu princip epoll (a podobných technologií na jiných OS), ale není mi jasné, proč do toho pletou JS. Proč nepoužít C, C++ nebo třeba Rust či jiný podobný nativně kompilovaný jazyk? Ono i v Javě už jsou lambda výrazy a Java má oproti JS řadu výhod.
Javascript a Node.js jsou od začátku postavené nad jedním defaultním event-loopem. Všechny knihovny provádějící IO to dělají neblokujícím způsobem za použití toho jednoho event-loopu. Ve vámi uváděných jazycím můžete používat jen knihovny kompatibilní s daným event loopem nebo si vypomáhat použitím vláken.
Dnes Javascript obsahuje i jazykové konstrukce usnadňující tento typ konkurentního programování. Vámi uváděné jazyky nemají obdobu async await.
Nepomáhá si ten JS runtime náhodou v případě async IO operací taky vláknama na úrovni OS? Vždyť podpora async IO na Linuxu je poměrně pochybná. Takže mi to přijde jen jako přesun pacienta na plicní, navíc s penalizací vyplývající z používání mimořádně úchylného jazyka.
Používá nějaký thread-pool, ale určitě nevytváří nové vlákno pro každou čekající IO operaci.
