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

时间:2018-06-07 19:05:25

标签: 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如何处理它感到好奇。

1 个答案:

答案 0 :(得分:0)

无法创建线程。我引自here

  

Node.js®是基于Chrome的V8 JavaScript构建的JavaScript运行时   发动机。 Node.js使用事件驱动的非阻塞I / O模型   使它轻巧高效

所以,简而言之,Node太好了管理并发