Node.js:阻塞线程直到发出事件

时间:2013-11-22 11:29:39

标签: javascript multithreading node.js threadpool

我正在尝试制作一个有重负载处理的简单服务器。我正在使用集群模块将这个繁重的负载带到线程,让Node让它变得神奇。问题是:因为我不知道如何构建一个线程池,我担心我可能会遇到pid限制的麻烦。

问题:如果我无法更改进程标识符操作系统限制,如何创建一个没有死的Node的线程(一个等待消息的线程,处理它然后等待另一条消息)没有使用忙等待(我希望他们在等待新请求时阻止)?

1 个答案:

答案 0 :(得分:1)

我无法得到你所要求的东西,但是节点集群意味着产生一个常量数量的工作者(通常每个CPU核心一个)来启用你的请求的多线程处理。

每个工作人员都在一个线程中工作,只消耗一个pid。所有工作者共享相同的TCP连接,允许在它们之间分配请求。每个工作进程处理所有请求,在其单个线程中异步(同时)调度到id。

Node.js旨在通过异步处理所有传入请求来利用单个CPU核心的所有资源,这意味着您不需要超过numCPUs个工作人员来利用您的所有资源。

所以,我无法理解你的pid限制问题。

如果您在配置群集时遇到问题,请参阅this answerthis blog post

总结我的答案,正确配置的集群包括处理请求的require('os').cpus().length工作进程和一个监视它们并重新生成死亡进程的主进程。