对Node.js单线程执行模型感到困惑

好的,我正在学习Node.js,但是我无法围绕这个等待的模型。 我正在通过阅读The Node Beginner Book来学习它。 在这里有一个关于阻塞和非阻塞操作的部分。 我不明白的是非阻塞操作。

代码如下:

var exec = require("child_process").exec; function start(response) { console.log("Request handler 'start' was called."); exec("ls -lah", function (error, stdout, stderr) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write(stdout); response.end(); }); } function upload(response) { console.log("Request handler 'upload' was called."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello Upload"); response.end(); } exports.start = start; exports.upload = upload; 

启动函数称为exec,exec执行ls -lah。 那么callback会等待回应吧? 如果exec执行“find /”,在我的计算机中,完成“find /”命令大约需要30秒。 由于这是单线程,如果用户1访问启动function,那么在几毫秒内,用户2也访问启动function。 那么会发生什么? 这是否意味着用户1将在30秒内得到响应,而用户2将需要等待1分钟,因为用户1仍在履行“查找/”?

对不起,如果我的问题太不好意思了。 谢谢阅读!

在node.js中,所有I / O操作都是asynchronous工作的。 两个find操作都将并行运行。 尝试阅读: 了解node.js事件循环 。