node.js子进程

node.js子进程,node.js,child-process,Node.js,Child Process,我正在试图弄清楚这是否是node.js子进程的一个不错的用例: 我有一个多人游戏,人们参与1v1比赛。我应该为每个匹配使用子进程吗?实际上不需要。因为节点是基于事件的,单个进程可以处理数千个这样的玩家对。假设您正在使用,您将为每一对创建“房间”/“组”/“通道”。根据你使用的库,命名法可能会有所不同,但总体方法是相同的——分配所有将在同一“通道”中相互比赛的玩家。如果您实际为每个这样的播放器对使用一个子进程,那么实际上就是在扼杀node.js的构建目的 另一方面,在(以及)中实现了生成子进程的实

我正在试图弄清楚这是否是node.js子进程的一个不错的用例:


我有一个多人游戏,人们参与1v1比赛。我应该为每个匹配使用子进程吗?

实际上不需要。因为节点是基于事件的,单个进程可以处理数千个这样的玩家对。假设您正在使用,您将为每一对创建“房间”/“组”/“通道”。根据你使用的库,命名法可能会有所不同,但总体方法是相同的——分配所有将在同一“通道”中相互比赛的玩家。如果您实际为每个这样的播放器对使用一个子进程,那么实际上就是在扼杀node.js的构建目的


另一方面,在(以及)中实现了生成子进程的实际用例。在这里,子进程(也称为worker)由主进程派生。工作进程执行实际工作,比如处理HTTP请求,而主进程只监视工作进程,如果现有工作进程死亡(由于各种原因),则生成新的工作进程。子进程还用于调用非nodejs应用程序。

Node.JS的酷之处在于,您可以在一个线程中创建几乎所有的逻辑,并且通过一些非常酷的内核特性,Node知道何时可以处理新的套接字信息


节点正试图逃离的一件事是每个连接模型一个线程。看一看。Node适用于I/O绑定的应用程序,所以如果游戏需要太多的处理,例如计算物理对象,Node可能不适合您

你为什么要这么做?不需要这样做,除非您正在执行阻塞操作。“如果您的游戏需要太多处理,例如计算物理对象,节点可能不适合您”-不再是这样: