Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道node.js程序中只能运行1个线程。
如果这个线程被阻塞了,例如,等待键盘输入,它还能响应其他事件吗?
是否有后台事件循环线程来分发事件处理?
如果这个线程被阻塞,它还能响应其他事件吗?
它不能立即响应,但希望当你最终完成你的块时,这些事件会排队等待处理。
没有后台线程。事件也由“主”(唯一)线程处理。
规则是永远不要在 node.js中阻塞。如果某些事情需要时间,您必须通过异步回调处理它。如果要同时执行 CPU 密集型操作,则必须使用多个进程(并在异步回调中接收结果)。
所有这一切的好处是您不必担心同步多个线程(因为只有一个)。这使编程更安全(但你必须习惯到处都有回调)。