假设我有一个高并发的socket服务 在某次请求的回调中将传递来的消息体存入变量 let data = balabala... 在高并发情况下 来自多个不同请求的data会不会互相污染? 请赐教……
回复 (3)
Y
var i=0;
var server = require('http').createServer(function(req, res) {
var j=0;
res.writeHead(200,{"Content-Type":" text/plain;"});
var client=req.url.split("?")[1].split("=")[1];
if(client ==2){
i++;
j--;
}else {
i--;
j++;
}
res.end(" i:"+i+" j:"+j);
console.log(" i:"+i+" j:"+j);
});
server.on("listening",function(){
console.log("listen 3000");
});
server.listen(3000);
开两个命令窗口 一个用 ab -n 10000 -c 100 http://localhost:3000/?client=1 另一个用 ab -n 10000 -c 100 http://localhost:3000/?client=2 同时敲回车,就知道结果了
M
相互污染...没有这个说法, 与 PHP 不同, 所有请求公用一个进程, 同一份全局变量... 至于你说在一个 function scope 赋值一个变量, 每次都会创建的好伐, Node.js 单线程, 指的是执行 js 部分是单线程的, so 不会
参与回复
登录后即可参与回复。登录