#include #include #include #include #define THREADS 5 static int sum = 1; pthread_mutex_t sum_lock; void *updater(void *ptr){ pthread_mutex_lock(&sum_lock); sum = sum + 1; pthread_mutex_unlock(&sum_lock); pthread_exit(NULL); } int main(){ int i; pthread_t threads[THREADS]; pthread_mutex_init(&sum_lock,NULL); for(i = 0; i < THREADS ; i++) pthread_create(&threads[i],NULL,updater,NULL); for(i = 0; i < THREADS ; i++) pthread_join(threads[i],NULL); fprintf(stderr, "sum = %d\n", sum); exit(EXIT_SUCCESS); }