Node.js : Node.js is famously known for its single-threaded callback handler. It means that instead of handling every new HTTP request inside a dedicated thread or process it does it inside a single thread.
That makes the request handling in Nodejs single-threaded, whereas in Apache/PHP it is multi-threaded for instance. But Node.js takes advantages of that because it uses asynchronous system IO calls that does not block the request thread. When an IO call is made by the request thread, the IO call is executed on its own thread, and the request thread keeps going. When the IO call is done, a callback is fired on the request thread to handle the response.
This makes Node.js well-suited for IO bound applications, but also introduces the so-called “callback hell”, which can introduces cyclomatic complexity to your code.
The single-thread request handling can be clustered using Node.js native clustering, Nginx load-balancing with multiple application process, or Node.js process managers such as PM2, which makes use of all the server cores to start up as many application process as the CPU can handle.
ASP.Net : The async/await pattern introduces asynchronous programing for request handling. Indeed, each request handlers can be tagged as asynchronous, and IO calls can be awaited, which means every request will run on its own thread, and each IO call inside the request handling will be non-blocking.
This Task-based model can make use of callbacks, promise, or async/await programing models.
ASP.Net Core advocates the use of the async/await pattern when writing IO bound web applications.
http://www.ifourtechnolab.com/asp-dot-net-enterprise-content-management Nvn9999, if this helps please login to Mark As Answer. | Alert Moderator