Nodejs回调机制——哪个线程处理回调?

2024-03-17

我是 NodeJS 的新手,对 Node.js 的单实例模型感到好奇。 在一个简单的nodeJs应用程序中,当使用回调异步处理某些阻塞操作时,运行nodeJs的主线程是否也会处理回调? 如果请求是从数据库中获取一些数据,并且有 100 个并发用户,并且每个数据库操作需要几秒钟,那么当最终触发回调(对于每个连接)时,主线程是否接受这些请求也用于执行回调?如果是这样,nodeJs 是如何扩展的以及它如何响应得如此之快?


Nodejs 的每个实例都在单个线程中运行。时期。当您对网络请求进行异步调用时,它不会等待它,不会在您的代码或其他任何地方等待。它有一个贯穿始终的事件循环。当响应准备好时,它会调用您的回调。

这可以实现令人难以置信的性能,因为它不需要大量线程和所有内存开销,但这意味着您需要小心不要执行同步阻塞操作。

事件循环有一个相当不错的解释:http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/和原来的jsconf http://jsconf.com瑞安·达尔的演讲http://www.youtube.com/watch?v=ztspvPYybIY http://www.youtube.com/watch?v=ztspvPYybIY值得一看。你见过工程师因技术演讲而受到起立鼓掌吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodejs回调机制——哪个线程处理回调? 的相关文章

随机推荐