免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ring8595
打印 上一主题 下一主题

怎么样限制 fork 的并发数? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-03-23 20:48 |只看该作者
这个有标准做法.

accept后fork()一次, num_chilren++;

sig_child() 中, waitpid一个孩子结束num_children--;

accept后fork之前判断孩子数目, 超过了等待.

论坛徽章:
0
12 [报告]
发表于 2008-03-23 22:24 |只看该作者
listen第二个参数不是限制链接数了吗

论坛徽章:
0
13 [报告]
发表于 2008-03-23 22:39 |只看该作者

回复 #12 It'sGifted 的帖子

:wink: 不是,是连接请求的队列..
你自己写程序测试一下就知道了.

论坛徽章:
0
14 [报告]
发表于 2008-03-24 11:54 |只看该作者

回复 #11 思一克 的帖子

厉害 这个不错。。。。
不过这个得做互斥一样。。。。。
对同一个变量 加减。
学习了  谢谢

论坛徽章:
0
15 [报告]
发表于 2008-03-24 13:55 |只看该作者
应该要控制总进程数。

论坛徽章:
0
16 [报告]
发表于 2008-03-24 15:32 |只看该作者
看一下 阿帕奇的做法

论坛徽章:
0
17 [报告]
发表于 2008-03-25 07:56 |只看该作者
我100帖。闪人。

论坛徽章:
0
18 [报告]
发表于 2008-03-25 09:44 |只看该作者

  1. for (;;) {
  2.     while (numchildren >= limit) {
  3.         sig_pause();
  4.     }

  5.     sig_unblock(sig_child);
  6.     t = accept4s,remoteip,&remoteport);
  7.     sig_block(sig_child);

  8.     if (t == -1) continue;
  9.     ++numchildren;

  10.     switch((pid = fork())) {

  11.     }
  12.      ..........
  13. }

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP