gpt4 book ai didi

node.js - 如何避免阻塞 node.js 中的主线程?

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:14 24 4
gpt4 key购买 nike

当使用 node.js 编写 Web 服务器应用程序时,永远不要阻塞主线程当然是非常重要的。但是,如果服务器请求需要执行需要一些时间才能完成的计算怎么办?

会做一个

setTimeout(myCalculationFunc(), 0);

是保持服务器响应其他请求的最佳方式吗?

最佳答案

我创建了一个使用 child_process 进行大量计算的简单示例,如果您想使用它的话。

你可以这样做:

var http = require("http"),
exec = require("child_process").exec;

http.createServer(function(request, response) {
var endvalue;
request.on('data',
function(data) {
endvalue = data;
});
request.on('end',
function() {
exec("node calculate.js "+endvalue,
function (error, stdout, stderr) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write(stdout);
response.end();
});
});
}).listen(8080);

计算.js:

var endvalue = process.argv[2];
for (i=0;i<=endvalue;i=i+1)
{
//just keeping it busy
}
console.log("FINISHED USING ENDVALUE: "+endvalue);

关于node.js - 如何避免阻塞 node.js 中的主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6911879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com