LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 693|回复: 9

求助:关于多进程!

[复制链接]
发表于 2003-4-28 17:12:56 | 显示全部楼层 |阅读模式
现需两个进程:
A进程接受命令,接到一个命令后向B进程发一个信号,B进程处理后执行。

如何构造程序的框架?如何安排进程?

谢了!
发表于 2003-4-28 20:16:23 | 显示全部楼层
在B进程中用signal 捕捉信号。
发表于 2003-4-29 08:58:25 | 显示全部楼层
用pipe,fork,exec好一点吧,多写几行代码,以后扩展容易多了。
 楼主| 发表于 2003-4-29 09:16:42 | 显示全部楼层
我是新手,尽量说的详细吧!
发表于 2003-4-29 10:36:43 | 显示全部楼层
看linuxforum上我给你回的帖子
发表于 2003-4-29 16:35:41 | 显示全部楼层
APUE有没有?看一下程序1-8
 楼主| 发表于 2003-4-29 16:53:06 | 显示全部楼层
没有!
说上没有资料才到网上来问
发表于 2003-4-29 17:38:08 | 显示全部楼层

ddd

改用线程代替进程会更好些特别在RH9的新内核下对线程的支持更好了。
发表于 2003-4-30 14:57:57 | 显示全部楼层
我看了你在LinuxForum上的帖子,感觉用管道比较好。
不过你最好说清楚程序的要求,每一种技术应用的情况是不同的,比如用管道,在A运行的时候B也运行,A可以通过管道和B通信,这种方法对A、B之间对话比较复杂的情况较适用,如果用fork、exec的方式系统的开销就要大一些,因为每次都要产生一个新进程,但是也有好处,一是模块化程度提高,A只管接受命令,就像一个shell,B只管处理,二是扩展性好,如果以后有新的处理而修改B又太麻烦的话,可以写一个C程序,在稍微修改一下A就行了,三是响应速度快,如果处理时间比较长,比如A输入一个命令传给B需要处理一分钟,这样只用一个B进程的话就会造成这一分钟没法处理新的命令,如果用f-e的话就可以接受连续输入并启动多个B进程进行处理,总之你的程序的要求是选择某种实现技术的基础,A、B之间的接口的复杂程度,A接受输入的平均速度,B进行一次处理的平均速度,资源限制,扩展的要求等等。
呵呵,先把需求分析做好比较重要。
 楼主| 发表于 2003-4-30 17:06:05 | 显示全部楼层
谢谢你让我冷静下来。

我决定重新设计一下,难保会再麻烦各位。

谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表