0

我知道node.js程序中只能运行1个线程。

如果这个线程被阻塞了,例如,等待键盘输入,它还能响应其他事件吗?

是否有后台事件循环线程来分发事件处理?

4

1 回答 1

1

如果这个线程被阻塞,它还能响应其他事件吗?

它不能立即响应,但希望当你最终完成你的块时,这些事件会排队等待处理。

是否有后台事件循环线程来分发事件处理?

没有后台线程。事件也由“主”(唯一)线程处理。

规则是永远不要在 node.js中阻塞。如果某些事情需要时间,您必须通过异步回调处理它。如果要同时执行 CPU 密集型操作,则必须使用多个进程(并在异步回调中接收结果)。

所有这一切的好处是您不必担心同步多个线程(因为只有一个)。这使编程更安全(但你必须习惯到处都有回调)。

于 2012-12-21T01:25:24.207 回答