operating-system - 使用同步管道进行进程间通信
问题描述
我正在尝试了解管道以及如何使用它们。我正在尝试从父母那里分叉两个孩子。等待孩子向父母写(),现在当父母从孩子的FD读取()时,他计算总和并将一个值返回给孩子(使用2个其他管道),作为孩子的标志再次给父母两个新号码,依此类推。
我的伪代码:
- 创建 4 个管道(2 个用于从父级发送到子级,2 个用于从子级发送到父级)
- 将首字母从父母写到孩子(这样孩子可以先轮到。
- fork 第一个子进程和 while(1) 3.1 从父进程读取。如果 flg 为是,则写入()编号并继续阅读,当父母阅读此内容时,他将 flg 设置为否。对孩子 2 做同样的事情。当两个孩子都发送数据时,父母向管道写入“是”,然后重复。
但是,我觉得这在同步方面存在问题。使用管道有更好的方法吗?
解决方案
推荐阅读
- typescript - 打字稿:将动态数据传递给扩展类
- c++ - 如何在 C++ 中使用 ADO 修复连接执行错误
- scala - 将自定义方法添加到 JsonFormat
- python - 成对求和的运行时间复杂度是多少?
- angular - 使用 nginx 将遗留 URL 重定向/重写到需要哈希的 Angular 应用程序
- python - 如何使用 GROUP BY 和使用 SQLAlchemy 和 Postgresql 获取具有最大更新日期时间的行
- session - 如何检测会话是否即将到期?
- r - 在索引中查找最频繁的术语(错误:400 - 所有分片都失败)
- android - 导航元素看不到片段
- javascript - 如何在打字稿中声明成功/失败返回类型