Node.js中的工作线程池与libuv线程池有何区别?

4
我正在阅读有关工作池的node.js文档,并遇到了两个术语,我认为它们都是相同的 - worker poollibuv的线程池
这是混淆的要点(来自node.js doc url):
这些是使用此工作池的Node模块API:
I/O密集型
DNS: dns.lookup()dns.lookupService()
文件系统:除了fs.FSWatcher()和明确同步使用libuv线程池的所有文件系统API。
到目前为止,我的理解是: event loop ->可以被认为是主线程 worker pool ->由libuv实现,因此在这种情况下,工作池线程实际上是libuv线程。
那么,工作池如何在没有libuv线程的情况下执行某些操作?
1个回答

3
"Worker Pool"和"libuv的线程池"是相同的。你误解的原因在于那句话的表述方式。作为非英语母语的人,我可以理解为什么会有这种误解。
这个:
文件系统: 所有文件系统API(除了 fs.FSWatcher() 和明确同步使用的API)都使用 libuv 的线程池。
可以改成这样:
文件系统:除了 fs.FSWatcher() 和明确同步使用的API外,所有文件系统API都使用 libuv 的线程池。
UV_THREADPOOL_SIZE CLI 选项文档中看到了更好的表述方式,如下所示:
Node.js 使用线程池的 API 包括:
... (省略一些)
所有 zlib API,除了明确同步使用的API

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接