下面两个图表是我对线程如何在事件驱动的web服务器(如Node.js + JavaScript)中与非事件驱动的web服务器(如IIS + C#)进行比较的理解。


从图中可以很容易地看出,在传统的web服务器上,用于执行3次长时间运行操作的线程数要比事件驱动的web服务器上的线程数(3对1)大。
我想我得到了“传统的web服务器”计数正确(3),但我想知道事件驱动的一个(1)。以下是我的问题:
发布于 2013-01-07 11:19:58
1.一样,线程由Node为IO操作创建。就我个人而言,如果您想尝试使用线程,我建议您使用线程(包名不是很有启发性,但很容易使用)。更快。节点还支持多个进程,如果您也想尝试运行一个完全独立的进程。
发布于 2016-03-29 15:34:22
描述NodeJS的最好方法是像一只愤怒的松鼠(即你的线程)在轮子中运行,有无限数量的鸽子(你的I/O)可以传递消息。
节点中的I/O是“空闲”的。您的松鼠可以设置连接并将鸽子发送出去,然后在鸽子检索数据时继续执行其他操作,只在鸽子返回时处理数据。
如果您编写了错误的代码,您可能会让松鼠等待每只鸽子。
因此,始终编写非阻塞i/o代码。
如果你能鼓励你的鸽子承诺回来;)
承诺和生成器可能是您可以采取的最佳方法。
但是,您可以始终使用Node集群来建立一个主松鼠,它将根据主松鼠可以找到的CPU数量来生成子松鼠。
希望这有帮助,并注意到完全没有汽车类比。
https://stackoverflow.com/questions/14189496
复制相似问题