chinnirakesh.babu
BAN USER#include <iostream>
#include <pthread.h>
pthread_cond_t cond1;
pthread_mutex_t mutex1;
using namespace std;
int i = 0;
void* print0(void *a)
{
while(1)
{
pthread_mutex_lock(&mutex1);
pthread_cond_signal(&cond1);
pthread_cond_wait(&cond1, &mutex1);
cout << "thread1 " << i++ << endl;
pthread_mutex_unlock(&mutex1);
}
}
void* print1(void *a)
{
while (1)
{
pthread_mutex_lock(&mutex1);
pthread_cond_signal(&cond1);
pthread_cond_wait(&cond1, &mutex1);
pthread_mutex_unlock(&mutex1);
cout << "thread2 " << i++ << endl;
}
}
int main()
{
pthread_mutexattr_t mattr;
pthread_mutexattr_init(&mattr);
pthread_mutex_init(&mutex1, &mattr);
pthread_mutexattr_destroy(&mattr);
pthread_condattr_t cattr;
pthread_cond_init(&cond1, &cattr);
pthread_condattr_destroy(&cattr);
pthread_t t1;
pthread_t t2;
pthread_create(&t1, NULL, print0, NULL);
pthread_create(&t2, NULL, print1, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
pthread_mutex_destroy(&mutex1);
pthread_cond_destroy(&cond1);
}
Works perfectly fine.
- chinnirakesh.babu April 25, 2019