- (void)textDemo2{
// 同步队列
dispatch_queue_t queue = dispatch_queue_create("beckhams", DISPATCH_QUEUE_SERIAL);
NSLog(@"1");
// 异步函数
dispatch_async(queue, ^{
NSLog(@"2");
dispatch_sync(queue, ^{
NSLog(@"3");
});
NSLog(@"4");
});
NSLog(@"5");
}
那么执行这个代码会死锁么?offcourse,妥妥的死锁。打印了1、5、2后就卡死了。为啥呢? 此时的串行的队列queue里的任务是怎么排列的呢?
队列情况.png
网友评论