死锁程序
#include<unistd.h>
#include<pthread.h>
pthread_mutex_t mutex_1=PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t mutex_2=PTHREAD_MUTEX_INITIALIZER;
void *pthread_test_1(void*arg)
{
pthread_mutex_lock(&mutex_1);
sleep(1);
pthread_mutex_lock(&mutex_2);
pthread_mutex_unlock(&mutex_1);
pthread_mutex_unlock(&mutex_2);
}
void *pthread_test_2(void*arg)
{
pthread_mutex_lock(&mutex_2);
sleep(1);
pthread_mutex_lock(&mutex_1);
pthread_mutex_unlock(&mutex_2);
pthread_mutex_unlock(&mutex_1);
}
int main()
{
pthread_t th1,th2;
pthread_create(&th1,NULL,pthread_test_1,NULL);
pthread_create(&th2,NULL,pthread_test_2,NULL);
pthread_join(&th1,NULL);
pthread_join(&th2,NULL);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/243c97b23e3c41e8b8fce3f29a8a132d.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/de9603c1e1304592b08df095ba3fa9d2.png)