gdb检测死锁

死锁程序

#include
#include


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;
}

在这里插入图片描述

gdb检测死锁_第1张图片

你可能感兴趣的:(Linux,c++)