Skip to content

Instantly share code, notes, and snippets.

@JavaDeveloper
Created October 4, 2012 13:19
Show Gist options
  • Save JavaDeveloper/3833480 to your computer and use it in GitHub Desktop.
Save JavaDeveloper/3833480 to your computer and use it in GitHub Desktop.
unsigned int counter = 0;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond_var = PTHREAD_COND_INITIALIZER;
void* thread2_method(void* parameter){
string s = *(string*)(parameter);
for(int i=0;i<5;i++){
pthread_mutex_lock(&mutex);
counter++;
cout<<s<<": "<<counter<<endl;
pthread_cond_signal(&cond_var);
pthread_cond_wait(&cond_var, &mutex);
pthread_mutex_unlock(&mutex);
}
return NULL;
}
void* thread1_method(void* parameter){
string s = *(string*)(parameter);
for(int i=0;i<5;i++){
pthread_mutex_lock(&mutex);
pthread_cond_wait(&cond_var, &mutex);
counter++;
cout<<s<<": "<<counter<<endl;
pthread_cond_signal(&cond_var);
pthread_mutex_unlock(&mutex);
}
return NULL;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment