如果同一时间有100个请求,nodejs的顺序是不是先处理第一再处理第二个依次到100
16 回复
@jin52yang nextTick?你确定吗?他只是指定了事件循环顺序而已。你给出的fileIO,真正的异步处理在c这边。而js这边只是先等待,等成功了用事件触发回来。而基于Js这边的异步用的是child_process。
你对比一下这两个实现同样计算的方法,一个会阻塞一个不会。
var fibonacci = exports.fibonacci = function(n) {
if (n === 1)
return 1;
else if (n === 2)
return 1;
else
return fibonacci(n-1) + fibonacci(n-2);
}
var fibonacciAsync = exports.fibonacciAsync = function(n, done) {
if (n === 1 || n === 2)
done(1);
else {
process.nextTick(function() {
fibonacciAsync(n-1, function(val1) {
process.nextTick(function() {
fibonacciAsync(n-2, function(val2) {
done(val1+val2);
});
});
});
});
}
}