创建一个多进程的程序,由用户输入进程个数和每个进程的运行圈数
/*************************************************************************
> File Name: main.c
> Author: 杨永利
> Mail: 1795018360@qq.com
> Created Time: 2021年07月14日 星期三 21时22分03秒
************************************************************************/
/*
此程序为线程的压力测试程序,即由用户输入线程个数和运行圈数
*/
#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
//线程运行圈数
int iThreadLoop = 0;
void * start_routine(void *arg)
{
int i = 0;
int iThreadNum = (int)arg;
for (i = 0; i < iThreadLoop; i++) {
printf("第 %d 个线程运行第 %d 圈!\n", iThreadNum + 1, i + 1);
}
}
int main(int argc, char const *argv[])
{
//线程个数
int iThreadNum = 0;
int i = 0;
printf("请输入线程个数:\n");
scanf("%d", &iThreadNum);
printf("请输入每个线程运行圈数:\n");
scanf("%d", &iThreadLoop);
pthread_t *tid = (pthread_t*)malloc(sizeof(pthread_t)*iThreadNum);
if (NULL == tid) {
printf("申请内存失败\n");
exit(1);
}
for (i = 0; i < iThreadNum; i++) {
pthread_create(&tid[i], NULL, start_routine, (void *)i);
}
for (i = 0; i < iThreadNum; i++) {
pthread_join(tid[i], NULL);
}
free(tid);
tid = NULL;
return 0;
}
线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
线程和进程的区别在于是否独享一段地址空间。 在 Linux 系统下:
线程:是最小的执行单位。
进程:是最小资源分配单位,可看成是只有一个线程的进程。
联系客服