/* Baseado em código de * http://www.csc.villanova.edu/~mdamian/threads/posixsem.html */ #include #include #include #define NITER 1000000000 #define VEZES 5 long int count1=0; long int count2=0; void * ThreadAdd1 (void * a) { long int i, tmp; for (i=0; i<(long int)NITER; i++) { tmp=count1; tmp++; count1=tmp; } return NULL; } void * ThreadAdd2 (void * a) { long int i, tmp; for (i=0; i<(long int)NITER; i++) { tmp=count2; tmp++; count2=tmp; } return NULL; } int main() { int i; pthread_t tid[2*VEZES]; for (i=0; i