/* * Uma abordagem incorreta para divisão de trabalho. */ #include #include #include #include #define N_THREADS 3 #define MAX_VEZES 5 volatile int n_vezes = MAX_VEZES; /* Variável compartilhada */ void faz_alguma_coisa() { printf("Faz alguma coisa \n"); } void* f_thr(void *v) { while(n_vezes) { sleep(1); faz_alguma_coisa(); n_vezes--; } return NULL; } int main() { pthread_t thr[N_THREADS]; int i; for (i = 0; i < N_THREADS; i++) pthread_create(&thr[i], NULL, f_thr, NULL); for (i = 0; i < N_THREADS; i++) pthread_join(thr[i], NULL); return 0; }