javascript - NodeJS 是否为每个请求创建一个新线程?

标签 javascript node.js asynchronous blocking

当使用 NodeJS 在请求回调函数中执行长时间处理任务时,

handler = function(req, res) {
    // long CPU processing task (non I/O), e.g. compute N digits of Pi 
}

net.createServer(handler);

var express = require('express');
var app = express();
app.get('/', function (req, res) {
    // long processing task
});
app.listen(3000);

它是否仍然是相同的胎面(那么它是否阻塞?)?

注意:我知道在这里执行长时间处理任务可能不是一个好习惯,但我很好奇 NodeJS 如何处理它。

最佳答案

它不可能创建线程。我引用here :

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient

所以,简而言之,Node 非常擅长管理并发

关于javascript - NodeJS 是否为每个请求创建一个新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748539/

相关文章:

node.js - Mocha 浏览器使用 Node.js 命令行运行程序进行测试?

node.js - 跨设备编码静态文件以使用 FFMPEG 在浏览器中流式传输(分段的 h264?)

ios - 无法查看@synchronized如何与异步 block 一起使用

firebase - Flutter - 从 firestore 循环获取数据

javascript - Firebase 未找到云功能?

javascript - 多次 API 调用后 Angular 执行函数

javascript - 事件中的流类型细化

javascript - 如何使用 PHP 的 jquery(日期选择器) 来验证日期和时间?

node.js - Electron 和 Webpack ENOENT : no such file or directory, 打开 '/path.txt'

java - Jersey 服务器端异步 API 未按预期工作