#include #include #define AS 100000 #define DT 1000 struct shared { int * A; int * sum; pthread_mutex_t * pmutex; }; /* void boring(void * S) { struct shared * dat; int i; int ax; int j; ax = 0; dat = (struct shared *) S; for(i=0;iA[i]; for(j=0;jsum = ax; } */ void * fsum(void * S) { struct shared * dat; int i; int j, ax; ax = 0; dat = (struct shared *) S; for(i=0;ipmutex); *(dat->sum) += dat->A[i]; pthread_mutex_unlock(dat->pmutex); for(j=0;j=AS/2;i--) { pthread_mutex_lock(dat->pmutex); *(dat->sum) += dat->A[i]; pthread_mutex_unlock(dat->pmutex); for(j=0;j