在浏览器中,当我们运行 Web 应用程序时,事件循环将启动监视该选项卡并处理异步任务。每个选项卡都有自己的事件循环,并且每个选项卡都在浏览器中进行处理。
我对 Node.js 事件循环架构感到困惑。
假设我有一个 node.js 应用程序并将其部署在服务器上。当我发出请求时,我的请求将启动 node.js 进程,并且一个事件循环专用于该进程,即(它将处理所有计时器,勾选所有异步任务和行为)。
当我再发出一个请求时,它将启动我的应用程序的另一个 Node.js 进程,并附加一个事件循环......以浏览器选项卡进行类比(每个选项卡都是一个单独的进程,并且有自己的进程)事件循环)。 我是对的还是我错过了什么?并且请不要提供用于观看事件循环视频的 YouTube 链接。我的主要目的是清除我对 Node.js 的思维模型。
最佳答案
当您使用 Nodejs 运行应用程序时,会启动一个进程,该进程会生成一个用于处理 io 的线程池。
有一个事件循环从 io 线程接收数据以响应请求。如果事件循环被阻止,则请求将排队直到可以接收它们。
它使用 libuv 库来完成此任务 https://github.com/libuv/libuv
关于javascript - Nodejs 中的事件循环和浏览器中的事件循环之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60937739/