pthread_mutex_lock无法返回
使用静态mutex,即pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
有n个函数使用了该锁,
fun1()
{
pthread_mutex_lock(&mutex);
.......
pthread_mutex_unlock(&mutex);
}
fun2()
{
pthread_mutex_lock(&mutex);
.......
pthread_mutex_unlock(&mutex);
}
fun3()
{
pthread_mutex_lock(&mutex);
.......
pthread_mutex_unlock(&mutex);
}
.....
系统中有多个线程调用这些fun,运行几个小时后出现了某个fun无法等到mutex的状况。我在每个lock/unlock前后都加了打印,出问题之前打印中出现过连续连个fun都等到mutex的时候,之后的打印出现了一个unlock,但是之后再也没有fun能等到mutex了!
这个问题我怎么也搞不明白,最后就是表现出死锁状态!
求大侠指点!