gpt4 book ai didi

node.js - 大文件的上传/下载如何影响 Node.js 中的事件循环

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:01 25 4
gpt4 key购买 nike

我刚刚学习 Node.js,并且对(至少)一件事感到困惑。看来 Node.js 可以毫无问题地处理上传或下载大文件的多个请求。每个请求可能需要几分钟才能完成。为什么在服务这些请求之一时事件循环没有卡住?

-布莱恩

最佳答案

在 Node.js 中,即使您只在单个线程上工作,在操作系统级别它也会使用异步非阻塞事件。这意味着写入/读取缓冲区的任务与来自其他连接的其他事件复用。

如果您注意到 IncomingMessage 实现了 ReadbleStream http://nodejs.org/api/http.html#http_http_incomingmessage

那是因为它不是读取一次的所有数据,而是读取 block 。 HTTP 请求中的每个数据 block 都将作为您必须处理的事件发送给您。

事件循环没有卡住,因为从文件或套接字读取异步是操作系统提供的服务。您告诉操作系统您要读取一个文件,并且您可以不时检查 bean 从该文件中读取了多少字节,或者是否已读取了整个文件(加载到内存中)。这些异步函数由当今的操作系统提供,因为从文件或套接字读取通常比从 RAM 或缓存​​读取慢。因此,当您的进程继续执行其他任务时,操作系统将有一个线程负责读取。

关于node.js - 大文件的上传/下载如何影响 Node.js 中的事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281330/

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