为什么我的活动监视器使用多个线程显示Node.js?

jwe*_*rre 6 multithreading single-threaded node.js

我在OSX中打开了我的活动监视器,看看Node是如何相处的,令我惊讶的是它使用了8个线程.怎么可以!!?

节点有8个线程

ale*_*lex 8

Node.js 是单线程的。

然而,它建立在 libuv 之上,它处理所有低级平台相关的东西,包括异步 IO。

现在的问题是,现在操作系统中没有很好的异步 IO API。存在不同的 API,但它们都有各自的问题。

所以为了实现跨平台的异步 API,libuv 使用线程池来模拟它。这就是这些线程的来源。