我读过几篇文章描述了如何在节点事件循环工作,以及如何异步操作可以从一个单一的“主”线程来实现,但我很清楚的一两件事 -所有的异步IO nodejs代码都使用libuv吗?
是否所有异步IO代码的NodeJS在引擎盖下使用libuv? 例如 - 通过Sequelize连接到DB /乏味
的目标,我的理解是,以确定是否增加process.env.UV_THREADPOOL_SIZE将打开一个潜在的瓶颈与我们的数据库连接。我在日志中看到超时,等待数据库连接,尽管数据库服务器从未显示任何性能问题。
这是我一直在阅读文章 -
https://www.future-processing.pl/blog/on-problems-with-threads-in-node-js/ http://abdelraoof.com/blog/2015/10/28/understanding-nodejs-event-loop/ https://nodesource.com/blog/understanding-the-nodejs-event-loop/
When is the thread pool used?
libuv用于异步I/O。并非所有异步事件(例如'setTimeout')正在执行I/O操作。但考虑到libuv [最初是为Node.js开发的](https://github.com/libuv/libuv#overview),我想说所有的异步I/O都可以用它来处理。 –
感谢您的意见。为了清晰起见,我更新了我的问题。 – Jeremy