gpt4 book ai didi

node.js - 了解 Node.js 中的事件循环

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:25 24 4
gpt4 key购买 nike

我已经阅读了很多有关事件循环的内容,并且我了解所提供的抽象,通过它我可以发出 I/O 请求(让我们使用 fs.readFile(foo.txt))并传入一个回调,一旦特定事件指示文件读取完成被触发,该回调将被执行。

但是,我不明白的是正在执行实际读取文件工作的函数是在哪里执行的。 Javascript 是单线程的,但同时发生两件事:执行我的 node.js 文件和实际从硬盘读取数据的某些程序/函数。与 Node 相关的第二个函数发生在哪里?

最佳答案

Node 事件循环是真正的单线程。当我们使用 Node 启动程序时,会创建事件循环的单个实例并将其放入一个线程中。

然而,对于某些标准库函数调用, Node C++ 端和 libuv 决定完全在事件循环之外进行昂贵的计算。因此它们不会阻塞主循环或事件循环。相反,他们使用称为线程池的东西,该线程池是一系列(默认情况下)四个线程,可用于运行计算密集型任务。只有四个东西使用这个线程池 - DNS 查找、fs、crypto 和 zlib。其他一切都在主线程中执行。

关于node.js - 了解 Node.js 中的事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773765/

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