當一個線程獲得了鎖並執行下面的代碼時,線程是否可以使用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