NSRecursiveLock

2016-12-26  本文已影响0人  张霸天

递归锁,顾名思义,可以被一个线程多次获得,而不会引起死锁。它记录了成功获得锁的次数,每一次成功的获得锁,必须有一个配套的释放锁和其对应,这样才不会引起死锁。只有当所有的锁被释放之后,其他线程才可以获得锁

NSRecursiveLock *theLock = [[NSRecursiveLock alloc] init];
void MyRecursiveFunction(int value) {     
 [theLock lock];     
 if (value != 0)     
 {         
  --value;         
  MyRecursiveFunction(value);     
 }     
 [theLock unlock]; 
} 
MyRecursiveFunction(5);
上一篇下一篇

猜你喜欢

热点阅读