node.js - Nodejs 在提供单线程环境的同时如何处理多个客户端

标签 node.js

我是nodejs新手。阅读了几篇文章后,我了解到 NodeJS 是单线程的。我对 Nodejs 如何处理多个客户端请求感到非常惊讶。例如,如果一个用户访问 Node 服务器,其他用户请求必须等待,直到它响应第一个客户端请求。请帮助我了解 Node 在单线程环境中如何工作。

最佳答案

当人们说 Node 是单线程时,他们的意思是只有一个 JavaScript 代码线程正在执行。但这并不意味着没有其他线程在执行。例如,Node 中的大多数 I/O 默认情况下都是异步的,并且会启动其他线程。

我在这个问题中发布了一个图表Thread in an event-driven vs non-event driven web server这显示了这些线程是如何工作的,并且在很大程度上我在该问题中的假设 #4 似乎是正确的。

关于node.js - Nodejs 在提供单线程环境的同时如何处理多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20969568/

相关文章:

javascript - 如何进行 Node.js 应用程序资源分析

node.js - MAC OS X "open APP.app"和 "APP.app/content/MacOs/APP"shell 脚本之间的差异

node.js - 如何使用 http POST 方法将当前用户(使用该应用程序的人)的 Firebase Id token 从 Flutter 应用程序发送到restapi?

node.js socket.io 简单聊天

node.js - 如何在 Nodejs 中将字符串作为读取流对象传递?

node.js - nodejs 打印 console.log 到 http

javascript - 为什么我的部分没有被发现?

node.js - Mocha 路由测试不异步执行

php - 如何使用 Node.js 从 PHP 运行 JS 并返回一个值?

javascript - Joi 数组验证忽略所需的嵌套键