/************************************** * pthread-test.c * * Programme d'exemple de pthread avec condition de course * **************************************/ #include #include #include #include #include ///AAA #define NTHREADS 4 long global=0; void error(int err, char *msg) { fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); exit(EXIT_FAILURE); } int increment(int i) { return i+1; } void *func(void * param) { for(int j=0;j<1000000;j++) { global=increment(global); } pthread_exit(NULL); } int main (int argc, char *argv[]) { pthread_t thread[NTHREADS]; int err; for(int i=0;i=0;i--) { err=pthread_join(thread[i],NULL); if(err!=0) error(err,"pthread_join"); } printf("global: %ld\n",global); return(EXIT_SUCCESS); }