Node.js如何处理一个线程的同时请求?

我在这个问题上做了一些search,但似乎人们只强调非阻塞IO。

比方说,如果我只是有一个非常简单的应用程序来响应客户端的“Hello World”文本,无论它有多快,仍然需要时间来完成执行。 如果有两个请求同时进入,那么Node.js如何确保两个请求都将被一个线程处理?

我阅读博客了解node.js事件循环 ,其中说:“当然,在后端,有数据库访问和进程执行的线程和进程”。 这个陈述是关于IO,但我也想知道是否有单独的线程来处理请求队列。 如果是这样的话,我可以说Node.js单线程概念仅适用于在Node.js上构build应用程序的开发人员,但是Node.js实际上是在幕后的multithreading上运行的吗?

操作系统给每个套接字连接一个发送和接收队列。 这就是字节的位置,直到应用程序层处理它们。 如果接收队列填满,则没有连接的客户端可以发送信息,直到队列中有可用空间。 这就是为什么应用程序应尽可能快地处理请求。

如果您在* nix系统上,则可以使用netstat查看发送和接收队列中的当前字节数。 在本例中,接收队列中有0个字节,发送队列中有240个字节(等待由OS发送出去)。

 Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 240 xxxx:22 xxxx:* LISTEN 

在Linux上,您可以使用proc文件系统检查发送/接收队列的默认大小和最大允许大小:

 Receive: cat /proc/sys/net/core/rmem_default cat /proc/sys/net/core/rmem_max Send: cat /proc/sys/net/core/wmem_max cat /proc/sys/net/core/wmem_default