NodeJS 是否为每个请求创建一个新线程?
Does NodeJS create a new thread for each request?
在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 在管理并发性方面非常出色
在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 在管理并发性方面非常出色