手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Unix操作系统并发进程数的控制

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

int c;
printf(“测试主程式\n");
printf(“1——生成1个子进程\n");
printf(“0——退出\n");
scanf(“%1d",&c);
/*接收客户请求*/
if ( c == 0 
break;
ret = Plimread(TESTTYPE);
/*检查正运行进程数是否已到最大并取得令牌*/
   if(ret < 0)
/*正运行进程数已到最大,不进行业务处理*/
   {
   printf(“mainlimread failed!\n");
   printf(“system busy,please wait a moment!\n");
   }
   else
   if ( fork() == 0 
  /*正运行进程数未到最大,生成子进程*/
   {
  /*进行相关业务处理*/
   sleep(10);
  /*假定业务处理时间为 10s*/
   Plimwrite(TESTTYPE);
  /*业务处理完毕,退还令牌,子进程退出*/
   exit(1);
   }
   }
   Plimend(TESTTYPE);
   /*撤消队列*/
   exit(1);
  }
  /* 编译方法:
   cc -o ./ctltest ctltest.c
   执行方法:
   ./ctltest
  假如在10秒钟内欲连续生成5个子进程,那么在生成第5个子进程时,将失败;
  等待10秒钟后,则可继续生成子进程。
  */

htldm 回复于:2003-02-23 19:51:23
好!

muzx 回复于:2003-02-23 19:51:58
见好就收!

snowyshao 回复于:2003-02-24 08:57:03
用共享内存来实现不是更为方便?

zhongjl 回复于:2003-02-24 18:44:40
多此一举!!

apollo521 回复于:2003-02-25 20:54:27
不觉的麻烦吗?您是想告诉大家您会使用消息队列还是想告诉大家怎么方便、可行的控制并发进程数呢?想不通。。。用一个计数器实现不是很方便吗?

海德 回复于:2003-02-25 22:46:11
您们能够说说您们的方法,具体点吧。

zhongzhu 回复于:2003-02-27 16:28:20
假如在写回之前程式被kill掉,如何办?
apollo521 :多进程您怎么用计数器?

xzh2002 回复于:2003-02-27 16:40:12
好象用 ulimit 命令也能够


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!