2012-12-21 76 views
0

我知道只有1個線程可以在node.js程序中運行。關於事件循環線程?

如果此線程被阻塞,例如,等待鍵盤輸入,它是否仍然可以響應其他事件?

是否有後臺事件循環線程來分發事件處理?

回答

1

如果此線程被阻止,它是否仍然可以響應其他事件?

它不能立即響應,但希望這些事件排隊等候,當你最終完成你的塊。

是否有後臺事件循環線程來分發事件處理?

沒有後臺線程。事件也由「主」(唯一)線程處理。

規則是決不會在node.js中阻止。如果某件事需要時間,您必須通過異步回調來處理它。如果要同時執行CPU繁重的操作,則必須使用多個進程(並以異步回調接收結果)。

所有這一切的好處是您不必擔心同步多個線程(因爲只有一個線程)。這使編程更安全(但你必須習慣於到處回調)。