【发布时间】:2015-06-15 11:53:39
【问题描述】:
我试图了解 node.js 是如何工作的,尽管我已经阅读了这篇文章:When is the thread pool used? 我不确定如果所有工作线程都忙并且准备好执行另一个异步 I/O 操作会发生什么。
如果我的这篇http://www.future-processing.pl/blog/on-problems-with-threads-in-node-js/ 文章正确,事件循环将被阻塞,直到有工作线程空闲来处理额外的 I/O 操作。这意味着如果五个用户试图同时访问一个网页(比如他们的个人资料页面,可以说需要一个 db-query),第 5 个用户将被阻止,直到第一个 db-query 完成并且这个工作线程再次空闲?
【问题讨论】:
-
请记住,您必须检查您的数据库库是如何进行 I/O 的。它可能使用也可能不使用 nodejs 线程池。
-
如果您发布更多关于您正在做什么和您的想法的完整示例,这将对我有所帮助。例如,您正在运行什么类型的网络服务器?简而言之,您的多线程应用程序的架构是什么?在什么环境中使用它?
-
我没有什么特别的想法;我只是好奇而已。我知道贝宝正在使用节点,并且我认为每个数据库查询都将在工作线程中执行,以免使主事件循环变黑。
标签: javascript node.js multithreading