gpt4 book ai didi

javascript - 当你发出并行请求时 libuv 中发生了什么

转载 作者:行者123 更新时间:2023-12-02 14:33:36 25 4
gpt4 key购买 nike

由于 Javascript 是单线程的,当我设法并行发出两个请求时,libuv 如何处理?例如:做出一系列 promise 并解决后者

最佳答案

我认为您真正要问的是 libv8 如何处理两个同时“进行中”的异步请求。由于 Javascript 是单线程的,所以你不能同时启动它们。第一个将启动,然后你的 JS 将能够运行更多并启动第二个。它们将同时“进行中”。

首先,nodejs中使用的库一般称为libuv,而不是libv8。这是the doc for libuv .

libuv 如何做到这一点的答案是它取决于异步操作的类型。这是来自 libuv site 的图表:

enter image description here

libuv 中的

磁盘 I/O 通过线程池使用 native 线程。 native 线程运行每个磁盘 I/O 操作,然后完成,然后将事件放入 Nodejs 事件队列中,以便当 NodeJS 可用时,它可以从事件队列中提取该事件​​并调用为异步 I 注册的回调/O 操作。该功能最初来自 libeio,但现在显然是它自己的实现。

libuv 中的网络操作使用 native 操作系统异步功能,例如 epoll、kqueue 和 IOCP。

关于javascript - 当你发出并行请求时 libuv 中发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37644904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com