#include #include #include #include pthread_mutex_t our_mutex = PTHREAD_MUTEX_INITIALIZER; void* our_thread_function(void* parameter){ char *message = (char*)parameter; int counter = 0; for(int j = 0; j < 5; j++){ // Take turns for this next part pthread_mutex_lock(&our_mutex); for(int i = 0; i < 5; i++){ printf("%4d: %s\n", counter++, message); usleep(random() % 1000000); } pthread_mutex_unlock(&our_mutex); usleep(1); } return 0; } int main(){ srandom(time(0)); pthread_t thread_handle; pthread_create(&thread_handle, 0, our_thread_function, (void*)"beep"); pthread_t thread_handle2; pthread_create(&thread_handle2, 0, our_thread_function, (void*)"click"); sleep(1000); return 0; }