我需要创建一个多进程程序,该程序:
fork()
创建5个进程; 现在我的想法是wait()
完成已完成的子任务(然后退出),然后创建一个新的子进程,因此我始终最多有5个进程。
有没有办法“重用”已经存在的过程?也许“发信号”的东西?在Google上找不到它。
使用C。
答案 0 :(得分:0)
我以这种方式解决了我的问题:
孩子将计算结果写在管道A上(该管道未阻塞)。然后,他们在管道B上等待下一个输入(该管道正在阻塞)。
所有试图从管道A读取内容的子代上的父循环(该管道未阻塞,因此如果子代未发送任何内容,则父代继续进行)。如果管道A包含结果,则父级将另一个任务发送给管道B上的那个孩子。
每个孩子都有一个烟斗A和一个烟斗B。