【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; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。