int main() {
clock_t start_time, end_time;
start_time=clock();
pthread_t tid[CORE];
int i;
if ( sem_init(&mysem,0,1) ) {
perror("init");
}
arr=(double*)malloc(sizeof(double)*SIZE);
srand((long)time(NULL)); /* initialize rand() */
printf("RAND_MAX: %i\n", RAND_MAX);
for(i=0;i<CORE;i++)
{
threadDataArray[i].threadID =i;
threadDataArray[i].partial_sum=0.0;
pthread_create(&tid[i],NULL,thread_sum,(void*)&threadDataArray[i]);
}
for(i=0;i<CORE;i++)
{
pthread_join(&tid[i],NULL);
}
}
void *thread_sum(void *arg)
{
struct threadData *myData;
my threadData* ) arg;
int j;
j=myData->threadID;
arr[j]=rand_double();
printf("%d %lf %p \n",j,arr[j],&arr[j]);
for (j; j < SIZE; j+=8)
{
//myData->partial_sum+=ar[i];
}
}
double rand_double(void){
double temp=rand()/(double)RAND_MAX;
return (MAX - MIN)*temp + MIN;
}
댓글 0