【问题标题】:ASP.NET Core & Node.js similaritiesASP.NET Core 和 Node.js 的相似之处
【发布时间】:2016-09-22 06:36:58
【问题描述】:

我已经使用 Node.js 有一段时间了。我在很大程度上知道它在内部是如何工作的(eventloop 和其他东西),但 ASP.NET Core 看起来与 Node.js 非常相似。

ASP.NET Core - Uses Kestrel (basically a fork of libuv)
Node.js - Uses libuv

ASP.NET Core - Tasks (though present in previous ASP.NET versions too)
Node.js - Promises

ASP.NET Core - Async/Await (though present in previous ASP.NET versions too)
Node.js - Async/Await

那么,以下结论是否正确:

Node.js 只有一个用于执行 javascript 代码(同步)的线程和许多用于后台异步操作的工作线程。

ASP.NET Core 使用多个线程来执行 .NET 代码(同步),并使用多个工作线程来执行后台异步操作。

Node.js 强制 I/O 为异步,因此您不会阻塞事件循环,但在 ASP.NET 中,用户也可以同步 I/O,从而阻塞线程,但由于它使用多个线程,因此整个应用程序不会不要被阻止。

【问题讨论】:

    标签: javascript c# asp.net node.js multithreading


    【解决方案1】:

    我没有关于 Node JS 的深入信息,但是根据您对 kestrel 和 libuv 的比较的第一部分,我应该说 ASP.NET 核心是独立于服务器的。 (我不是在谈论前端 Web 服务器,例如 IIS、Apache ......)。 ASP.NET Core 中有一个名为 IServer 的接口,它的任何实现都可以是 asp.net 核心应用服务器,Kesterl 是您的选择之一,您可以使用任何 Owin 兼容服务器或任何其他服务器,例如 nowin & web listener . ASP.NET core 是独立于管道的(我不是在说中间件),例如你可以使用 Owin 管道,asp.net core 默认管道,你也可以开发自己的管道。

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 2019-09-25
      • 2020-11-28
      • 2014-03-20
      • 2012-02-01
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多