因此,我对Node.js的工作方式有所了解:它具有一个侦听器线程,该线程接收事件,然后将其委托给工作池。工作线程在完成工作后会通知侦听器,然后侦听器将响应返回给调用者。
我的问题是:如果我在Node.js中建立一个HTTP服务器,并在我的一个路由路径事件(例如“ / test / sleep”)中调用sleep,则整个系统将停止。甚至是单个侦听器线程。但是我的理解是这段代码正在工作池中发生。
现在,相比之下,当我使用Mongoose与MongoDB交谈时,数据库读取是一项昂贵的I / O操作。Node似乎能够将工作委托给线程并在完成时接收回调。从数据库加载所需的时间似乎不会阻塞系统。
Node.js如何决定使用线程池线程还是侦听器线程?为什么我不能编写仅休眠和阻塞线程池线程的事件代码?
智慧大石
慕斯709654
相关分类