- 主線程創建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;
}