Node.js 异步调用处理和多核扩展

ral*_*aul 5 multithreading asynchronous multicore event-loop node.js

众所周知,node.js 内部处理异步调用,程序员永远不需要关心后台发生了什么。据我所知,即使每个人都说 node.js 只是单线程,但内部 v8/libuv 库正在产生线程来处理程序的异步片段的执行。

我的问题是,如果产生这些线程,它们是否会扩展多核架构?我的意思是,如果我有一个 4 核的 CPU,并且我的主节点线程在其中一个 CPU 上运行,那么这些内部产生的线程是否会扩展到其他三个 CPU 而不会保留在同一个 CPU 上。从理论上讲,它们应该可以扩展,但由于每个人都说 node.js 开箱即用不使用多核,我认为这值得一问。

Pra*_*gya 1

Node.js 处理每个进程一个线程。为了使其扩展到多个核心,您需要运行多个 Node.js 服务器,每个核心一个,并在它们之间分配请求流量。