#include #include int x = 1; pthread_mutex_t mutex_aang112 = PTHREAD_MUTEX_INITIALIZER; void* potok1(int i) { pthread_mutex_lock( &mutex_aang112 ); for (; i < 10; i++) { printf("Potok1: %d\n", x); } pthread_mutex_unlock( &mutex_aang112 ); return NULL; } void* potok2(int i) { pthread_mutex_lock( &mutex_aang112 ); for (; i < 10; i++) { x++; printf("Potok2: %d\n", x); } pthread_mutex_unlock( &mutex_aang112 ); return NULL; } void* potok3(int i) { pthread_mutex_lock( &mutex_aang112 ); for (; i < 10; i++) { x--; printf("Potok3: %d\n", x); } // pthread_mutex_unlock( &mutex_aang112 ); } int main() { pthread_attr_t attr; pthread_t info; int xxx=1; pthread_attr_init(&attr); pthread_create(&info, &attr, (void*)*potok1, (void*)xxx); pthread_create(&info, &attr, (void*)*potok2, (void*)xxx+1); pthread_create(&info, &attr, (void*)*potok3, (void*)xxx+2); sleep(2); return 0; }