主进程给8个同样功能的子进程分配任务,是否可以共用管道?

hztj2005 2014-08-02 12:27:55
1.一个主进程给8个同样功能的子进程(一个代码启动8次)分配任务,是否可以共用管道?
难道我要开8次*读写各1条=16条管道?

我此前在其它程序中用过匿名管道进行父子通信,不过经验不多。
有疑问:

2.从管道中ReadFile是否会自动清空管道?

3.从管道中没有读到数据返回0.那么是否要一个下面的循环。

while(1)
{
if(ReadFile)
{
break;

}else
{
Sleep(1000);//避免不停读操作。
}
}

4.向管道中WriteFile是否自动覆盖此前写入的原有数据,还是写在原有数据的尾部?
...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztj2005 2014-08-08
  • 打赏
  • 举报
回复
引用 7 楼 VisualEleven 的回复:
你完全可以使用socket来做~
原来多少用过一点管道。socket则从来没用过,学习一下。
hztj2005 2014-08-08
  • 打赏
  • 举报
回复
引用 5 楼 wumn29 的回复:
http://www.cppblog.com/playerken/archive/2009/06/17/87856.html 如要满足1对多、双向等条件, 共享内存是最佳方式,其实就是文件映射的一种特殊方式, 剪切板也可以, 原理差不多。 管道我只用过匿名的,在1对1单向的场景中用管道比较简单直观点。
这个链接非常好。
hztj2005 2014-08-08
  • 打赏
  • 举报
回复
引用 6 楼 wumn29 的回复:
[quote=引用 4 楼 hztj2005 的回复:] 管道是否是阻塞方式不知道,还没有完全理解,我用Event协调读写过程,算是把问题解决了。 匿名管道不能在一个父进程和多个子进程中使用,我用了多个管道。
管道读写是异步的,要用同步对象来控制写完了再读。[/quote] 我用匿名管道,如果没有读到数据,就一直等待在那里。后来用PeekNamePipe探测后,再用Readfile读,才解决问题。者应该就是阻塞方式的含义。
hztj2005 2014-08-04
  • 打赏
  • 举报
回复
管道是否是阻塞方式不知道,还没有完全理解,我用Event协调读写过程,算是把问题解决了。 匿名管道不能在一个父进程和多个子进程中使用,我用了多个管道。
傻X 2014-08-04
  • 打赏
  • 举报
回复
匿名管道不可取,我用共享内存
SiGoYi 2014-08-04
  • 打赏
  • 举报
回复
引用 楼主 hztj2005 的回复:
1.一个主进程给8个同样功能的子进程(一个代码启动8次)分配任务,是否可以共用管道? 难道我要开8次*读写各1条=16条管道? 我此前在其它程序中用过匿名管道进行父子通信,不过经验不多。 有疑问: 2.从管道中ReadFile是否会自动清空管道? 3.从管道中没有读到数据返回0.那么是否要一个下面的循环。 while(1) { if(ReadFile) { break; }else { Sleep(1000);//避免不停读操作。 } } 4.向管道中WriteFile是否自动覆盖此前写入的原有数据,还是写在原有数据的尾部?
加第3问,我记得管道接收数据是阻碍方式啊!不需要使用循环啊!
Eleven 2014-08-04
  • 打赏
  • 举报
回复
你完全可以使用socket来做~
wumn29 2014-08-04
  • 打赏
  • 举报
回复
引用 4 楼 hztj2005 的回复:
管道是否是阻塞方式不知道,还没有完全理解,我用Event协调读写过程,算是把问题解决了。 匿名管道不能在一个父进程和多个子进程中使用,我用了多个管道。
管道读写是异步的,要用同步对象来控制写完了再读。
wumn29 2014-08-04
  • 打赏
  • 举报
回复
http://www.cppblog.com/playerken/archive/2009/06/17/87856.html 如要满足1对多、双向等条件, 共享内存是最佳方式,其实就是文件映射的一种特殊方式, 剪切板也可以, 原理差不多。 管道我只用过匿名的,在1对1单向的场景中用管道比较简单直观点。
lx624909677 2014-08-02
  • 打赏
  • 举报
回复
1如果是匿名管道,不可共用 2匿名管道,会清空 3不是很清楚,记得是不用的,因为管道读写是查看管道状态的,有数据才会读

15,471

社区成员

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

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