我试图弄清楚IIS处理请求的方式是什么,Node.JS事件循环机制(发布和订阅C ++ ThreadPool)的优势。
我在这里读到: http://rickgaribay.net/archive/2012/01/28/node-is-not-single-threaded.aspx 和行:“没有上下文切换,因为事件循环只是简单地发布和订阅线程池。”我不清楚。
IIS有一个I / O线程将请求发送到CLR线程池,它继续工作直到收到响应。有点类似于我所理解的事件循环。 CPU在线程之间切换,因此它切换到节点的工作线程(为了完成工作)和CLR线程池相同。
有人可以解释一下事件循环机制对IIS使用的请求线程的主要优势是什么?
答案 0 :(得分:0)
我认为你链接的作者增加了比清晰度更多的混乱(这个家伙说他只是学习节点,所以你真的要求盲目导致盲目使用它来学习)。我不知道为什么他认为Node声称“它”(即Node.js)是单线程的。我从未见过这个。关键是在Node 中你的代码都在一个线程中执行,这意味着开发人员可以免于处理不同类型的争用。 (许多人认为这是一个关键优势,但我认为有人可能会说你只是为另一种交换一种样板(信号量等):处理异步(尽管有几种方法可以减少更繁琐的方面)这个)。
虽然我不确定你在问什么,但我想如果你在3分钟到7分钟之间观看这段视频(https://www.youtube.com/watch?v=L0pjVcIsU6A),你会有一个“哦,我明白了”的时刻。演示者使用的视觉表示(我相信他部分来自原始节点创建者的预处理)比文本墙更容易理解,文本墙将仅使用单词来描述相同的事物。
希望这有帮助。