- 主线程创建10个子线程
- 第0个子线程计算从01加到10的和 - 第1个子线程计算从11加到20的和
- …
- 第9个子线程计算从91加到100的和 2. 主线程归并10个子线程的计算结果,最终结果为5050
- 本题必须使用线程参数来完成
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<pthread.h>typedef struct{int start;int end;int sum;
}param;void *worker(void *arg){param *p=arg;p->sum=0;int i;for(i=p->start;i<p->end;i++)p->sum+=i;return NULL;
}int main(){param p[10];pthread_t pid[10];int i;int sum=0;for(i=0;i<10;i++){p[i].start=i*10+1;p[i].end=p[i].start+10;pthread_create(&pid[i],NULL,worker,p+i);}for(i=0;i<10;i++)pthread_join(pid[i],NULL);for(i=0;i<10;i++)sum+=p[i].sum;printf("%d\n",sum);return 0;
}