gpt4 book ai didi

c++ - 如何让两个子进程互相等待

转载 作者:行者123 更新时间:2023-11-28 05:19:35 25 4
gpt4 key购买 nike

我正在研究操作系统中的进程。我想出了一个问题,我必须创建两个子进程来使用 fork and wait 来完成类似的任务。在 parent fork 第一个 child 之后,那个 child 会等到 parent fork 另一个 child 并且第二个 child 完成它的工作。

例如,如果我想让第一个 child 显示 10 个第一个偶数,第二个 child 显示 10 个第一个奇数,则输出应该是这样的:

二胎1 3 5 7 9 11 13 15 17 19第二个 child 死了第一个 child 2 4 6 8 10 12 14 16 18 20第一个 child 死了

结束!

我一直在尝试各种方法,但我无法让第一个 child 等到第二个 child 完成工作。有人知道怎么做吗?谢谢

最佳答案

这些不是最优的,但可以解决问题:

首先,选择使用共享对象:
- 您可以使用 mmap 创建共享内存区域,(参见 man mmap)
- 您可以使用 shmget 和 shmat 函数系列
- 因此你们将获得彼此的 PID 并能够使用 wait (man 2 wait)

第二个选项:
- parent 知道两个 child 的 PID。
- parent 将一个接一个地向两个 child 发送信号。 (见 man 2 kill(请不要发送 KILL 信号))
- 每个 child 都有一个自定义的 parent ,并用这个信号做一些事情。

关于c++ - 如何让两个子进程互相等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797151/

25 4 0
文章推荐: c++ - SetDisplayMode(XRes, YRes, 16 对 32, 0, 0)
文章推荐: html -
文章推荐: c++ - 伪随机整数
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com