如何开启20个子进程?

8thdetective 2004-09-08 02:08:39
谁知道如何一下子fork开启20个子进程,然后让它们都挂起,等到主进程要哪个进程起来就哪个进程起来?

需要代码!
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xeroo 2004-09-08
  • 打赏
  • 举报
回复
tcp的话子进程循环阻塞于Read就可以啊 主进程和20个子进程建立20个TCP连接 需要选择其中的一个子进程的时候就向其连接中写入数据 这样相应的子进程就会从Read阻塞中恢复 处理主进程交付的任务 处理完了后再次阻塞于read等待下一个任务
Xeroo 2004-09-08
  • 打赏
  • 举报
回复
如何选择子进程是一个调度算法 这个要看你需要实现什么 怎么实现 简单的法子就是由子进程竞争 复杂一点就是调度了 这个就不是一句两句可以讲清楚的了 得明确的看你是什么样的需求了
唤起子进程就是用的进程间通讯 方法很多 可以TCP阻塞 可以通过Semaphore 可以通过Pipe 可以通过Message Queue 如何使用这些进程间通讯的方法 Unix Network Programming里面讲的很清楚
8thdetective 2004-09-08
  • 打赏
  • 举报
回复
to blh(老猫) :请问tcp和udp对子进程处理有区别吗?为什么tcp要退出而udp能直接传地址信息?
我就是想建进程池,但我发了很多贴了,进程池里面的进程怎么控制我还是不懂
我的想法是 主进程建立起20个子进程,然后把子进程的pid存入一个内存中,然后呢?是不是应该让子进程用accept()函数一直等待?这样的话一个进程做完了之后就exit了,难道主进程的任务就是不断查看所有的子进程有没有做完?做完就fork新的???
ps:我是tcp
谢谢
8thdetective 2004-09-08
  • 打赏
  • 举报
回复
楼上的,我这个问题已经问了很多人了,如果一直得到的回答都是:见XX书,那跟没有问有什么区别?我也很希望得到的是思路或者是直接有代表性的代码,难道不对吗?在这里发帖就是希望解决问题的,如果抛出一句:看xx书去那这里提问有什么用呢?
Xeroo 2004-09-08
  • 打赏
  • 举报
回复
一口一个要代码 晕 究竟是你不会写代码还是只会看代码 虽然说的是源码之前了无秘密 你可知道写代码也是需要时间的啊?

提供的只能是思路 实现 对不起 自己去实现或者找别人实现 大家不是这么有空的

我给的思路就是 去看UNP第二卷IPC的内容
blh 2004-09-08
  • 打赏
  • 举报
回复
It is common design for your requirement to fork a new child process to handle new request. If using tcp mode, child process shall exit after request handled, if using udp mode, you can send address info of applicant to one child process by message queue. In last case you can use process pool.
8thdetective 2004-09-08
  • 打赏
  • 举报
回复
假如我客户端来一个请求,我应该怎么让主进程选择哪一个空闲的进程去处理它?
要代码
blh 2004-09-08
  • 打赏
  • 举报
回复
fork + semaphore or message queue
grooving 2004-09-08
  • 打赏
  • 举报
回复
for循环一下。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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