gpt4 book ai didi

c - 将新任务分配给 forked() 进程

转载 作者:行者123 更新时间:2023-11-30 21:26:59 25 4
gpt4 key购买 nike

我需要创建一个多进程程序:

  1. 使用 fork() 创建 5 个进程;
  2. 使用管道发送内容以执行子进程
  3. 当子进程完成其工作时,它应该从父进程接收新的工作,直到所有工作完成。

现在我的想法是 wait() 完成子任务(然后退出),然后创建一个新的子进程,这样我总是最多有 5 个进程。

有没有办法“重用”已经存在的流程?也许“发出信号”什么?在 Google 上找不到它。

使用C。

最佳答案

我这样解决了我的问题:

  • children 将计算结果写在管道 A 上(该管道没有阻塞)。然后他们等待管道 B 上的下一个输入(该管道处于阻塞状态)。

  • 父循环对所有试图从管道 A 读取内容的子进程进行循环(该管道没有阻塞,因此如果子进程没有发送任何内容,父进程将继续执行)。如果管道 A 包含结果,则父级会向管道 B 上的子级发送另一个任务。

每个 child 都有一个管道 A 和一个管道 B。

关于c - 将新任务分配给 forked() 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56603174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com