11

在我阅读了关于 node.js 的所有文献之后,我仍然回到这个问题,node.js 本身是否在后台使用了多个线程?我认为答案是肯定的,因为如果我们使用简单的异步文件读取示例,则必须做一些工作来读取文件,但是如果节点的主事件循环没有处理这项工作,那一定意味着应该有一个 POSIX 线程运行某个负责文件读取的地方,然后在完成后将回调放在要执行的事件循环中。那么当我们说 Node.js 在一个线程中运行时,我们实际上是指 node.js 的事件循环只有一个线程吗?或者我在这里错过了什么......

4

1 回答 1

7

对于 node.js 上的 Javascript 程序,只有一个线程

如果您正在寻找技术细节,如果底层操作系统需要,node.js 可以免费使用线程来解决异步 I/O。

重要的是永远不要破坏 Javascript 程序的“只有一个线程”抽象。如果有更多的线程,它们所能做的就是为 Javascript 程序中的主线程排队工作,它们自己永远无法执行任何 Javascript 代码。

于 2012-09-29T08:20:36.930 回答