请教一个多进程的小白问题,就是我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个子进程,但是实际上比较活跃的顶多有十几个进程,有好些甚至感觉根本没在干活,子进程里面的代码逻辑都一样的。。。。。。是进程起的太多了吗?烦请赐教,不胜感谢。。
可以开多少个子进程是根据配置来的,如果你的O/S支持,那开多点是可以的
理论上来说,操作系统默认设置的是单进程可以打开256个文件描述符,也即:可以至少打开256个进程的。
你ptree pid能看到100个输出么
ok,回来瞟了一眼,发现当线程建立失败后,你是直接跳出循环的,这个地方处理一下status == -1也许你会知道为什么