首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候使用线程池?

什么时候使用线程池?
EN

Stack Overflow用户
提问于 2014-03-26 03:20:42
回答 1查看 48.3K关注 0票数 109

因此,我对Node.js的工作原理有了一个理解:它只有一个侦听器线程,该线程接收一个事件,然后将其委托给一个工作池。工作线程在完成工作后通知侦听器,然后侦听器将响应返回给调用者。

我的问题是:如果我在Node.js中建立一个HTTP服务器,并在我的某个路由路径事件上调用睡眠(例如"/test/ sleep "),整个系统就会停止。甚至是单个监听器线程。但我的理解是,这段代码发生在worker池中。

现在,相比之下,当我使用Mongoose与MongoDB对话时,数据库读取是一项开销很大的I/O操作。Node似乎能够将工作委托给线程,并在完成时接收回调;从DB加载所用的时间似乎不会阻塞系统。

Node.js如何决定使用线程池线程而不是侦听器线程?为什么我不能编写休眠并且只阻塞线程池线程的事件代码?

EN

回答 1

Stack Overflow用户

发布于 2017-04-03 06:56:16

这种误解仅仅是抢占式多任务和协作式多任务之间的区别。

睡眠关闭了整个狂欢节,因为实际上所有的游乐设施都只有一条线,而你关闭了大门。把它想象成“JS解释器和其他一些东西”,忽略threads...for你,只有一个线程,...

...so不会阻止它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22644328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档