据我了解,Node JS 服务器继续在端口上监听任何传入请求,这意味着线程一直很忙?它什么时候从这个连续的永无止境的循环中跳出来,检查回调队列中是否有任何事件要处理?
2) 当Node JS开始执行回调函数的代码时,服务器实际上停止了?它不是在听进一步的请求吗?我的意思是,因为只有一个线程可以同时完成这两项任务,所以一次只能完成一个任务?
这种理解是正确的还是另有原因?
最佳答案
是的,你是对的。 nodejs 中的所有内容都在主线程上运行,除了 I/o 调用和 fs 文件调用分别进入操作系统内核和线程池执行。所有同步代码都在主线程上运行,当这段代码运行时,nodejs 无法处理任何进一步的请求。这就是为什么不建议使用长循环的原因,因为它可能会阻塞主线程很长时间。您需要创建子线程来处理它。
关于node.js - nodeJS什么时候检查执行回调的回调队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36192257/