Use the following header files:
stdio.h
pthread.h
unistd.h
program:
pthread_mutex_t fir_mx;
pthread_mutex_t sec_mx;
void *fn1()
{
pthread_mutex_lock(&fir_mx);
pthread_mutex_lock(&sec_mx);
printf("Thread 1 locks mutex\n");
pthread_mutex_unlock(&sec_mx);
pthread_mutex_unlock(&fir_mx);
}
void *fn2()
{
pthread_mutex_lock(&sec_mx);
pthread_mutex_lock(&fir_mx);
printf("Thread 2 locks mutex\n");
pthread_mutex_unlock(&fir_mx);
pthread_mutex_unlock(&sec_mx);
}
int main(void)
{
pthread_t tid1;
pthread_t tid2;
pthread_mutex_init(&fir_mx,NULL);
pthread_mutex_init(&sec_mx,NULL);
int t;
while(1)
{
pthread_create(&tid1,NULL,fn1,NULL);
pthread_create(&tid2,NULL,fn2,NULL);
pthread_join(tid1,NULL);
pthread_join(tid2,NULL);
}
}
stdio.h
pthread.h
unistd.h
program:
pthread_mutex_t fir_mx;
pthread_mutex_t sec_mx;
void *fn1()
{
pthread_mutex_lock(&fir_mx);
pthread_mutex_lock(&sec_mx);
printf("Thread 1 locks mutex\n");
pthread_mutex_unlock(&sec_mx);
pthread_mutex_unlock(&fir_mx);
}
void *fn2()
{
pthread_mutex_lock(&sec_mx);
pthread_mutex_lock(&fir_mx);
printf("Thread 2 locks mutex\n");
pthread_mutex_unlock(&fir_mx);
pthread_mutex_unlock(&sec_mx);
}
int main(void)
{
pthread_t tid1;
pthread_t tid2;
pthread_mutex_init(&fir_mx,NULL);
pthread_mutex_init(&sec_mx,NULL);
int t;
while(1)
{
pthread_create(&tid1,NULL,fn1,NULL);
pthread_create(&tid2,NULL,fn2,NULL);
pthread_join(tid1,NULL);
pthread_join(tid2,NULL);
}
}
No comments:
Post a Comment