4

我试图弄清楚 Node.JS 事件循环机制(发布和订阅 C++ 线程池)与 IIS 处理请求的方式相比有什么优势。

我在这里读过: http ://rickgaribay.net/archive/2012/01/28/node-is-not-single-threaded.aspx 和以下行:“没有上下文切换,因为事件循环只是发布和订阅线程池。” 我不清楚。

IIS 有一个将请求发送到 CLR 线程池的 I/O 线程,它会继续工作,直到收到响应。有点类似于我所理解的事件循环。CPU 正在线程之间切换,因此它切换到节点的工作线程(为了完成工作),并且与 CLR 线程池相同。

有人可以解释一下事件循环机制相对于 IIS 使用的请求线程的主要优势是什么?

4

1 回答 1

0

我认为你链接到的作者增加了更多的混乱而不是清晰(那个人说他只是在学习节点,所以你真的要求在使用它来学习时盲目引导盲目的情况)。我不知道为什么他认为 Node 声称“它”(即 Node.js)是单线程的。我从来没有见过。关键是在 Node 中,您的代码都在一个线程中执行,这意味着您的开发人员可以从处理不同种类的争用中解脱出来。(许多人认为这是一个关键优势,但我认为有人可能会争辩说,您只是在将一种样板(用于信号量等)换成另一种:异步处理(尽管有几种方法可以减少更繁琐的方面这个的)。

虽然我不确定你在问什么,但我认为如果你在 3 分钟和 7 分钟之间观看这个视频 ( https://www.youtube.com/watch?v=L0pjVcIsU6A ),你会得到一个“哦,我明白了”的时刻。演示者使用的视觉表示(我相信他部分来自原始节点创建者的 preso)比单独使用单词描述同一事物的文本墙更容易理解。

希望这可以帮助。

于 2014-02-26T21:18:43.423 回答