Node.js 是单线程的,这是否意味着我们不能在不同的线程中运行多个 Node.js?

ALH*_*ALH 2 multithreading node.js

我在一篇文章中读到 Node.js 是单线程的。问题是如果我们在不同的端口运行多个 Node.js 文件怎么办?它们是否有自己的线程,或者全部都在 Node.js 主线程下?有人可以阐明我现在处于黑暗面的主题吗?

Bra*_*rad 5

问题是如果我们在不同的端口运行多个 Node.js 文件怎么办?它们是否有自己的线程,或者全部都在 Node.js 主线程下?

从你的问题来看,我觉得你实际上正在启动 Node.js 的多个进程。在这些情况下,它们将像系统上任何其他多进程集一样工作,并且您的操作系统将尝试平衡所有内核和/或 CPU 之间的负载。

我在一篇文章中读到 Node.js 是单线程的。

这有点复杂。虽然 Node.js 使用的 V8 JavaScript 引擎确实在单个线程中运行 JavaScript,但许多 Node.js 库都会调用本机代码,这些本机代码可以使用任意数量的线程。Node.js 的这些内部结构使用线程池和多线程来处理磁盘和网络 IO 以及其他任务。

Node.js 真正发挥作用的应用程序是那些通常受 IO 限制的应用程序。在这些情况下,您无需为其编写任何代码即可获得多线程的大部分好处。例如,当您向磁盘发出多个请求时,Node.js 将使用多个线程来处理该数据的缓冲和管理,同时不会阻塞主 JavaScript 线程。

在我的许多应用程序中,我发现我可以充分利用 8 核机器,而无需编写任何代码来启动子进程。Node 的内部多线程为我完成了所有工作。您的里程会因应用程序的不同而有所不同。

我对过去的问题写了不同的解释,您可能会觉得有帮助: /sf/answers/1352726581/