当一个线程获得了锁并执行下面的代码时,线程是否可以使用return语句来解锁它所获取的锁?一些这样的代码。关于pthread_mutex_lock和pthread_mutex_unlock的一些问题
static pthread_mutex_t mutex;
int foo()
{
pthread_mutex_lock(mutex);
.........
execute some code here and some errors happen
return -1;// but without pthread_mutex_unlock
pthread_mutex_unlock(mutext)
return 0;
}
某些错误发生在pthread_mutex_unlock语句和线程返回给被调用者之前。线程是否会返回其他线程的mutext锁而不执行pthread_mutex_unlock?
如果它自动解锁,如何从锁定互斥锁的函数返回?你怎么能写一个函数,其目的是选择正确的互斥锁并锁定它? – 2011-08-30 13:09:27