父进程创建10个子进程,子进程和父进程之间通信问题

狂奔的蜗_牛 2016-12-13 05:06:40
父进程创建10个子进程,各个子进程和父进程之间通过管道通信,管道不是特别了解,管道是否是一对多,或者需要10个管道,或者其他办法,请教。
...全文
1373 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyzeng79 2017-01-03
  • 打赏
  • 举报
回复
从日后的升级扩展考虑,宜采用tcp网络通信作为进程间通信的方式。
赵4老师 2016-12-19
  • 打赏
  • 举报
回复
向立天 2016-12-17
  • 打赏
  • 举报
回复
就用socket把,控制好做一些
worldy 2016-12-17
  • 打赏
  • 举报
回复
引用 6 楼 u010308862 的回复:
[quote=引用 2 楼 worldy 的回复:] 共享内存是不错的选择
简单、但请问是否多个子进程往同一共享内存写、父进程是否会有读取数据错误[/quote] 使用同步
yuanningcz 2016-12-15
  • 打赏
  • 举报
回复
引用 6 楼 u010308862 的回复:
[quote=引用 2 楼 worldy 的回复:] 共享内存是不错的选择
简单、但请问是否多个子进程往同一共享内存写、父进程是否会有读取数据错误[/quote] 你把共享内存加一个写入锁,但是同一时间只允许一个进程进入。这样就不会有问题了。
狂奔的蜗_牛 2016-12-15
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
共享内存是不错的选择
简单、但请问是否多个子进程往同一共享内存写、父进程是否会有读取数据错误
狂奔的蜗_牛 2016-12-15
  • 打赏
  • 举报
回复
引用 4 楼 yuanningcz 的回复:
共享内存过时了,不建议使用。 创建十个管道,不是不可以,但是显得太愚蠢了,也太耗费资源。 像你这种情况,最简单的方法有三种: 一、像楼上这位兄台的提议,用casynsocket做一个socket,这种也是最常见的方式。我这里有个项目,子进程几百个,全都是用的socket。 二、使用windows消息; 三、使用远程过程调用; 其中二和三都存在一个共同的缺陷:不能跨平台,只能在windows平台下使用。
Socket方案不错,Windows消息机制可能不好处理,需要传递一些文本数据
worldy 2016-12-14
  • 打赏
  • 举报
回复
共享内存是不错的选择
yuanningcz 2016-12-14
  • 打赏
  • 举报
回复
共享内存过时了,不建议使用。 创建十个管道,不是不可以,但是显得太愚蠢了,也太耗费资源。 像你这种情况,最简单的方法有三种: 一、像楼上这位兄台的提议,用casynsocket做一个socket,这种也是最常见的方式。我这里有个项目,子进程几百个,全都是用的socket。 二、使用windows消息; 三、使用远程过程调用; 其中二和三都存在一个共同的缺陷:不能跨平台,只能在windows平台下使用。
狂奔的蜗_牛 2016-12-14
  • 打赏
  • 举报
回复
自个顶一下
oyljerry 2016-12-13
  • 打赏
  • 举报
回复
还可以考虑用socket等,它本身就是支持一个服务端对应多个客户端的情况

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧