Nodejs 底层结构

问题描述 投票:0回答:1

我阅读了很多文档来了解nodejs是单线程还是多线程,今天我发现nodejs与v8绑定,几乎没有你自己的函数,还有libuv和其他3或4个小库。当你运行nodejs时,它会创建进程和main线程,将会有 v8 和事件循环,并且有 libuv 和线程池,默认有 4 个线程。我的问题是线程池也在 NodeJS 进程中,我的意思是在 NodeJS 有 5 个线程,如果我发送请求,我是否只从主线程获得结果其中包括 v8 和事件循环或来自所有线程?

你知道这件事吗?

node.js threadpool v8 event-loop libuv
1个回答
0
投票

运行 Node.js 时,它在单线程事件循环模型上运行,但使用 libuv 提供的线程池来执行某些任务。所以,是的,从技术上讲,Node.js 进程中涉及多个线程,包括主事件循环线程和 libuv 线程池中的线程。当发送请求时,事件循环会调度它们,处理这些请求的实际工作可能由线程池中的线程来处理。本质上,我们可以从 Node.js 进程中的多个线程获取结果,而不仅仅是从主线程获取结果。

© www.soinside.com 2019 - 2024. All rights reserved.