如何解决使用同步管道的进程间通信
我正在尝试了解管道以及如何使用它们。我正在尝试从父母那里分叉两个孩子。等待两个孩子都写()到父母,现在当父母从孩子的FD中读取()时,他计算总和并将一个值返回给孩子(使用2个其他管道)作为孩子的标志再次给父母两个新数字,然后继续。
我的伪代码:
- 创建 4 个管道(2 个用于从父级发送到子级,2 个用于从子级到父级)
- 将父母的首字母写给孩子(以便孩子可以先轮到。
- fork 第一个子进程和 while(1) 3.1 从父母那里读。如果flg 是yes,则write() 编号并继续阅读,当父母读取此内容时,他将flg 设置为no。 对孩子 2 做同样的事情。 当两个孩子都发送数据时,父母向管道写入 yes,然后重复。
但是,我觉得这在同步方面有问题。使用管道有什么更好的方法来做这些吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。