主队列异步串行问题
来源:8-1 GCD相关面试问题

陈关健
2018-11-09
-
(void)viewDidLoad {
[super viewDidLoad];
//主队列本身也是串行队列
dispatch_async(dispatch_get_main_queue(), ^{[self doSomething]; });
}
老师,您说主队列当中提交的任务无论是同步还是异步最终都是在主线程中执行,而主队列也是串行队列,这里怎么不会死锁呢,是因为主队列中的异步方法会创建新的队列吗?有点不明白
写回答
1回答
-
于海
2018-11-09
同步方式或者异步方式提交到主队列的任务都是在主线程上执行。问题中的异步分派到主队列不会产生卡死,原因是主队列是串行队列,异步方式提交的任务会先排队,当前任务执行完成才会执行后续提交进来的任务
012018-11-10
相似问题