提问:如何控制多个进程?
我的程序在linux下面要一下子起来20个进程,然后等待客户端传来的请求,让其中空闲的进程去处理请求,如果进程都不空闲就等待什么的。请问应该怎么写?怎么控制?谢谢 问题点数:20、回复次数:11Top
1 楼yjf7888(seeking a place 找工作了location:Chengdu)回复于 2004-09-04 19:28:12 得分 0
学习Top
2 楼hotrain(hotrain)回复于 2004-09-04 21:04:01 得分 0
为什么不这样呢?
服务器只有一个主进程,用来接受来自客户端的请求,然后建立一个新的进程,用来处理,这样结构不是很清晰吗?
Top
3 楼collide(to be程序员)回复于 2004-09-04 21:21:39 得分 10
你的想法就是“进程池”,呵呵。
可以考虑使用信号,给每个进程安装你自己定义的信号处理函数,然后在进程中使用pause(),等待指定信号的到来,如
while( m_continue == true )
pause();
void my_sig_handler(int signo)
{
// 你的处理函数,如果要中止while循环的话,设置m_bcontinue的值即可。
}Top
4 楼8thdetective(bbllyy)回复于 2004-09-06 08:43:31 得分 0
这样会不会引起两个进程同时处理的冲突的?Top
5 楼smaxll(古颜)回复于 2004-09-06 09:20:47 得分 0
不会,信号发送给特定的进程,由process id指定。
每个进程都可以有不同的signal handlerTop
6 楼8thdetective(bbllyy)回复于 2004-09-06 09:59:18 得分 0
能不能给我一个实际的例子?我对linux的这些东西还不大熟悉。。。Top
7 楼collide(to be程序员)回复于 2004-09-06 18:45:48 得分 0
unix环境高级编程,信号那一章。Top
8 楼smaxll(古颜)回复于 2004-09-07 09:50:26 得分 0
具体看看unix网络编程的后面,其中有专门讲这个的Top
9 楼8thdetective(bbllyy)回复于 2004-09-07 11:00:39 得分 0
是unix网络编程1还是2?那两本书都贵得厉害啊。网上又没有载。。。Top
10 楼smaxll(古颜)回复于 2004-09-07 11:46:46 得分 10
第1册上有,书是超经典,做网络编程的这些是必看
不要舍不得钱,从书上能获得远远大于那几十块钱的价值
我有扫描版的,但不建议你去看那些=好书=的电子版,看到好书就买吧。
眼睛比钱重要^_^
2是专门讲进程间通讯的。
我也没看过第二册^_^
Top
11 楼lwj_dxy(豆芽--抵制日货)回复于 2004-09-07 13:23:11 得分 0
upTop




