首页 > 解决方案 > 使用同步管道进行进程间通信

问题描述

我正在尝试了解管道以及如何使用它们。我正在尝试从父母那里分叉两个孩子。等待孩子向父母写(),现在当父母从孩子的FD读取()时,他计算总和并将一个值返回给孩子(使用2个其他管道),作为孩子的标志再次给父母两个新号码,依此类推。

我的伪代码:

  1. 创建 4 个管道(2 个用于从父级发送到子级,2 个用于从子级发送到父级)
  2. 将首字母从父母写到孩子(这样孩子可以先轮到。
  3. fork 第一个子进程和 while(1) 3.1 从父进程读取。如果 flg 为是,则写入()编号并继续阅读,当父母阅读此内容时,他将 flg 设置为否。对孩子 2 做同样的事情。当两个孩子都发送数据时,父母向管道写入“是”,然后重复。

但是,我觉得这在同步方面存在问题。使用管道有更好的方法吗?

标签: operating-systempipeipc

解决方案


推荐阅读