Node.js 为什么请求没有在节点js中被删除? // //常量app=express(); //控制台日志(8) const http=require('http'); const server=http.createServer((req,res)=>{ 常数t1=日期。现在(); 而((Date.now()-t1)/1000{console.log('server is up')});

Node.js 为什么请求没有在节点js中被删除? // //常量app=express(); //控制台日志(8) const http=require('http'); const server=http.createServer((req,res)=>{ 常数t1=日期。现在(); 而((Date.now()-t1)/1000{console.log('server is up')});,node.js,http,request,response,Node.js,Http,Request,Response,如果我做5个curl localhost:3003,我看到hiii在1分钟的间隔内打印,所以每个hii将在1分钟的间隔内打印5个,我的问题是,既然节点的单个线程在while循环中很忙,为什么其他4个curl请求没有得到丢弃,是什么让它们排队,而节点的单个线程却在忙着处理第一个请求 事件循环允许Node.js执行非阻塞I/O 尽管JavaScript是单线程的 尽可能将操作卸载到系统内核。自 大多数现代内核都是多线程的,它们可以处理多个线程 在后台执行的操作。当这些操作之一 完成后,内核告诉Nod

如果我做5个curl localhost:3003,我看到hiii在1分钟的间隔内打印,所以每个hii将在1分钟的间隔内打印5个,我的问题是,既然节点的单个线程在while循环中很忙,为什么其他4个curl请求没有得到丢弃,是什么让它们排队,而节点的单个线程却在忙着处理第一个请求

事件循环允许Node.js执行非阻塞I/O 尽管JavaScript是单线程的 尽可能将操作卸载到系统内核。自 大多数现代内核都是多线程的,它们可以处理多个线程 在后台执行的操作。当这些操作之一 完成后,内核告诉Node.js,以便适当的回调 可以添加到轮询队列中,以最终执行


我建议您阅读。

这是一个好问题,我在
const t1
之后添加了一个日志,以查看其他请求是否至少会达到该点,但它没有达到该点,因此我假设其他请求的处理级别低于应用程序,并且它们在那里排队。
//
// const app = express();
// console.log(8)
const http = require('http');

const server = http.createServer((req,res) =>{

   const t1 = Date.now();

   while((Date.now() - t1)/1000 <= 60) {

   }
   res.end('hello');
   console.log('hiiii');
});

server.listen(3003,()=>{console.log('server is up')});