首页 > 代码库 > 【Linux学习】基本的多进程测试框架

【Linux学习】基本的多进程测试框架

题目:

编程一个基本多进程测试框架,提示用户输入进程数、和每个进程数运行圈数。进行多进程压力测试。
要求父进程能监控所有子进程的退出,避免僵尸进程。

#include <stdio.h>#include <unistd.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>void func(int, int);int main(void){    int numJ;    int numQ;    int i, j;    pid_t pid;        printf("父进程PID %d\n", getpid());         printf("请输入需要创建的进程数:");    scanf("%d", &numJ);    printf("请输入每个进程需要跑多少圈:");    scanf("%d", &numQ);        for(i = 0; i < numJ; ++i)    {        pid = fork();                if(-1 == pid)        {            exit(0);        }        if(0 == pid)        {            for(j = 0; j < numQ; ++j)            {                func(i, j);            }            exit(0);        }    }        int chlidPid;        while((chlidPid = waitpid(-1, NULL, 0)) > 0)    {        printf("孩子pid:%d\n", chlidPid);    }    printf("父进程结束\n");            return 0;}void func(int i, int j){    printf("第%d进程,第%d圈\n", i + 1, j + 1);    return;}

 

【Linux学习】基本的多进程测试框架