#include <stdio.h>
#include <pthread.h>
#include <windows.h>
#define MAX_COUNT 10000
int count = 0;
pthread_mutex_t mutex_lock;
void* counter1(void* args){
int i = 1;
while(i <= MAX_COUNT/4){
pthread_mutex_lock(&mutex_lock);
count++;
pthread_mutex_unlock(&mutex_lock);
printf("Thread 1: %d\n", count);
Sleep(1);
i++;
}
}
void* counter2(void* args){
int j = 1;
while(j <= MAX_COUNT/4){
pthread_mutex_lock(&mutex_lock);
count++;
pthread_mutex_unlock(&mutex_lock);
printf("Thread 2: %d\n", count);
Sleep(1);
j++;
}
}
int main() {
pthread_t th1;
pthread_t th2;
pthread_mutex_init(&mutex_lock, NULL);
pthread_create(&th1, NULL, counter1, NULL);
pthread_create(&th2, NULL, counter2, NULL);
pthread_join(th1, NULL);
pthread_join(th2, NULL);
getchar();
return 0;
}