遞歸鎖,顧名思義刘莹,可以被一個線程多次獲得阎毅,而不會引起死鎖。它記錄了成功獲得鎖的次數(shù)点弯,每一次成功的獲得鎖扇调,必須有一個配套的釋放鎖和其對應(yīng),這樣才不會引起死鎖蒲拉。只有當(dāng)所有的鎖被釋放之后肃拜,其他線程才可以獲得鎖
NSRecursiveLock *theLock = [[NSRecursiveLock alloc] init];
void MyRecursiveFunction(int value) {
[theLock lock];
if (value != 0)
{
--value;
MyRecursiveFunction(value);
}
[theLock unlock];
}
MyRecursiveFunction(5);