我们可以动态创建流程并维护流程池吗?

时间:2013-06-17 12:54:01

标签: c++ c process fork

我的一个服务器(用C语言编写)使用fork()创建'N'个子进程并委派其运行报告的任务。它没有能力监视它的活着或死亡的子进程。到目前为止的要求是每当活动进程的数量<1时产生新进程。 N.(比如说,如果五个子进程中有两个死了。)我应该生成另外两个进程。我正在使用socketpair()在父级和子级进程之间进行通信。

我通过各种帖子阅读,但似乎他们谈论的是“预分叉”机制。 基本上,我对使用fork()动态创建子进程感兴趣。可能吗?如果是的话,你能给我一些指示吗?

1 个答案:

答案 0 :(得分:1)

如果您需要监视子进程并在它们出现故障时生成它们,那么这种方法可能会有所帮助。

使父进程在循环中使用waitpid等待子进程中的更改。维护父级的计数器以跟踪活动的进程数。根据您的要求,您可以使用fork调用创建一个或多个新子进程并更新计数器。

fork is here的人。

跟踪death of child is here的类似问题。