Node.js实际上是否使用下面的多个线程?

时间:2012-09-29 08:08:05

标签: node.js asynchronous posix

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

1 个答案:

答案 0 :(得分:7)

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

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

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