在看線程鎖時,無意間看到block的遞歸調(diào)用,之前一直沒有想怎么進行block遞歸調(diào)用,這里記錄一下。
static NSRecursiveLock *lock;
if (lock == nil) {
lock = [[NSRecursiveLock alloc] init];
}
static void (^__block DoLog)(int) = ^(int value){
[lock lock];
if (value > 0) {
DoLog(value-1);
}
NSLog(@"value is %d", value);
[lock unlock];
};
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSLog(@"test begin");
DoLog(5);
NSLog(@"test end");
});