#include #include #include #include #include #include #define check(return_val, msg) { if (return_val != 0) printf("%s",msg); } unsigned long int condivisa[] = {0,0,0,0,0,0,0,0,0,0}; int ncondivisa = 0;/* Variabili condivise */ pthread_mutex_t Mutex = PTHREAD_MUTEX_INITIALIZER; /* lock per accesso memoria */ void *aggiorna ( int dim); /* aggiornamento casuale */ int main(){ pthread_t tid1,tid2; int retcode, k, dim=sizeof(condivisa)/sizeof(int); retcode=pthread_create(&tid1,NULL,(void *)aggiorna,(void *) dim);check(retcode,"errore create"); retcode=pthread_create(&tid2,NULL,(void *)aggiorna,(void *) dim);check(retcode,"errore create"); retcode = pthread_join(tid1,NULL); check(retcode, "join failed"); retcode = pthread_join(tid2,NULL); check(retcode, "join failed"); for(k=0; k