#include<pthread.h>
#include<string.h>
#include<errno.h>
#include<stdio.h>
#include<unistd.h>
pthread_mutex_t mutex;
/*
int test_function(void)
{
//lock
do_something()
if(x) return -1
//unlock
}
在上锁后,然后下面会因为某种判断后退出,
下一次进来后,又会进行上锁,这样的死锁是因为代码逻辑不正确导致的,
也是很多新手常犯的问题。
*/
int main()
{
pthread_mutex_init(&mutex,NULL);
printf("mutex init\n");
pthread_mutex_lock(&mutex);
printf("mutex lock#1\n");
pthread_mutex_lock(&mutex);
printf("mutex lock#2\n");
pthread_mutex_unlock(&mutex);
pthread_mutex_unlock(&mutex);
pthread_mutex_destroy(&mutex);
return 0;
}
C++ 死锁
死锁预防:理解并避免pthread_mutex_lock的错误使用
最新推荐文章于 2025-09-08 16:04:06 发布
这篇博客讨论了一个常见的多线程编程问题——死锁。通过示例代码展示了当在函数中连续调用`pthread_mutex_lock`而不解锁,可能会导致死锁的情况。作者提醒新手程序员注意锁的正确管理和使用,以防止此类逻辑错误的发生。

1144

被折叠的 条评论
为什么被折叠?



