/* mutex-example-1.c */ #include #include #include #include pthread_mutex_t m; pthread_t t1, t2; uint64_t value = 0; void* my_thread(void *_) { for (int n = 0; n < 1000000; n++) { pthread_mutex_lock(&m); value += 1; pthread_mutex_unlock(&m); } return NULL; } int main(void) { pthread_mutex_init(&m, NULL); pthread_create(&t1, NULL, my_thread, NULL); pthread_create(&t2, NULL, my_thread, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); printf("%"PRIu64"\n", value); pthread_mutex_destroy(&m); return 0; }