一尘不染

NodeJS真的是单线程的吗?

node.js

Node.js通过使用事件循环而不是线程,将基于事件的模型置于核心,从而解决了“每个连接一个线程的问题”。所有昂贵的I /
O操作始终与在启动操作完成时执行的回调异步执行。

如果发生任何操作,则由epoll()之类的多路复用机制处理该观察。

我的问题是:

  • 为什么在使用阻塞系统调用select / epoll / kqueue时NodeJS不阻塞?

  • 还是根本不是NodeJS单线程,因此需要第二个线程
    来观察具有select / epoll / kqueue的所有I / O操作?


阅读 235

收藏
2020-07-07

共1个答案

一尘不染

NodeJS事件事件 (来自网站的第二行),不是单线程的。它在内部处理执行选择/ epoll /
kqueue处理所需的线程,而无需用户明确地进行管理,但这并不意味着其中没有线程使用情况。

2020-07-07