【发布时间】:2018-06-06 10:50:28
【问题描述】:
我正在学习Node Js,我了解Node js的核心是基于事件循环的反应器模式。
当任何事件发生时,它会进入事件队列,然后在运行的任务结束后被堆栈拾取,如果事件是非阻塞事件,则会发生这种情况,但如果它是阻塞请求,则事件循环通过从 libuv 的线程池到一个线程。
现在我的疑问是:
一旦执行结束,libuv 线程是否会将请求传递回事件队列或事件循环? ,不同的教程有不同的场景。
libuv 中的线程池多了 3 个线程,现在假设有 10 个用户尝试登录并且每个人同时登录(一些应用程序,例如 facebook 左右),只是如何,线程在他们想要连接时被阻塞到DB,那么只有三个线程怎么处理这么多负载呢?
我真的很困惑,在任何地方都没有很好地解释这些疑问,我们将不胜感激。
【问题讨论】:
-
Libuv 默认使用 4 个线程,但是可以使用 UV_THREADPOOL_SIZE 进行更改。
标签: node.js event-loop libuv