免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1332 | 回复: 8
打印 上一主题 下一主题

IPC 问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-21 15:09 |只看该作者 |倒序浏览
理论上, 根据进程间的关系, 有以下几种IPC方法
1。 parent/child: pipe
2. 同一台机器上: message-q, shared memory...
3. 不同机器上: socket.

但实践中, 好像更多看到的是用Socket方法, 不管进程间是什么关系。 不知道大家是否同意? 有什么评论??

论坛徽章:
0
2 [报告]
发表于 2003-02-21 15:30 |只看该作者

IPC 问题请教

不同意只使用socket方法

因为每种消息都有自己的优点和缺点

如果程序可能在网络间通信
或是进程间通信的数据量比较大
那么使用socket

如果只是在单机内通信
并且数据量大
那么使用
pipe (注意pip的原子写有个限制)或 共享内存

消息队列用于多个进程间共享信息


如果只是要互斥
那么使用信号灯

论坛徽章:
0
3 [报告]
发表于 2003-02-21 15:36 |只看该作者

IPC 问题请教

谢谢斑竹回复

但socket 用于单机通讯, 和父子进程间的通讯有什么不好吗?

论坛徽章:
0
4 [报告]
发表于 2003-02-21 15:44 |只看该作者

IPC 问题请教

也可以
但是要看性能

如果你对性能要求不高
那么也可以

还有
如果没有配置网络的情况下
使用socket的程序就不可以运行

论坛徽章:
0
5 [报告]
发表于 2003-02-21 15:47 |只看该作者

IPC 问题请教

另外有点是使用socket也不能代替的

如信号灯

消息队列也可以在一个队列中保存许多消息
以及其它信息

但是socket就不可以

所以使用时还是要看你的需要

论坛徽章:
0
6 [报告]
发表于 2003-02-21 16:03 |只看该作者

IPC 问题请教

“如果没有配置网络的情况下“。。。 这点倒忘了。 现在习惯了”网络就是计算机“的概念了。

”如信号灯; 消息队列也可以在一个队列中保存许多消息 “ 这两个方面我想说一下我们的一个程序L:

L的一些进程A从远程机器(mount on local)拷贝一些文件。 然后把拷好的文件名之类的信息socket给另一个进程B。 B把文件移动到另一个工作目录并最终load到oracle.

根据程序的机制, A和B不用信号灯就可以对文件操作。 A有个HandOffPendingItems 的函数, 用于处理收集好的文件信息(还没有传给B)

不知斑竹怎么看?

论坛徽章:
0
7 [报告]
发表于 2003-02-21 16:05 |只看该作者

IPC 问题请教

A和B是兄弟关系。
其父进程复杂配置, 平衡他们

论坛徽章:
0
8 [报告]
发表于 2003-02-21 16:06 |只看该作者

IPC 问题请教

A和B是兄弟关系。
其父进程负责配置, 平衡他们

论坛徽章:
0
9 [报告]
发表于 2003-02-21 16:09 |只看该作者

IPC 问题请教

以上对信号灯功能那写得不全
应该是
如信号灯
可以用于信号通知及互斥

你这样做就可以啊
可以使用socket
因为socket传送的数据量可以很大


其它IPC好像还没有那么大的数据量传送的
(除了使用共享内存)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP