2 u014203904 u014203904 于 2014.11.19 20:30 提问

linux下多进程的一个问题 (c++)

请教一个多进程的小白问题,就是我linux下fork了一堆子进程,如下:
//create sub processs
int status,i;

for (i = 0; i < SUB_NUMBER; i++)
{

  status = fork();

  if (status == 0 || status == -1) break;
}

if (0 != status)
{

}
else if (status == 0)
{
        //sub process

}
-----------假如SUB_NUMBER=100,也就是有100个子进程,但是实际上比较活跃的顶多有十几个进程,有好些甚至感觉根本没在干活,子进程里面的代码逻辑都一样的。。。。。。是进程起的太多了吗?烦请赐教,不胜感谢。。

4个回答

lx624909677
lx624909677   Ds   Rxr 2014.11.20 13:35

可以开多少个子进程是根据配置来的,如果你的O/S支持,那开多点是可以的

cobps
cobps   2014.11.20 13:42

理论上来说,操作系统默认设置的是单进程可以打开256个文件描述符,也即:可以至少打开256个进程的。

eagleyan
eagleyan   Rxr 2014.12.01 07:07

你ptree pid能看到100个输出么

eagleyan
eagleyan   Rxr 2014.12.06 05:17

ok,回来瞟了一眼,发现当线程建立失败后,你是直接跳出循环的,这个地方处理一下status == -1也许你会知道为什么

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!