1.首先看一下官方文档的解释,这个block的队列是同步执行的,不像异步,这个方法直到block执行完毕才会返回
2.主线程一旦开启,就要先把自己的代码执行完成之后,才去执行加入到主队列中的任务
死锁原因:
a) dispatch_sync这个方法要等到block的执行完之后,才返回
b) 主线程一旦开启,就要先把自己的代码执行完成之后,才去执行加入到主队列中的任务
c) 这样主线程想要执行block,先要下去执行下面的代码,但是因为dispatch_sync这个方法,,如果返回不了,主线程就无法向下再次执行,所以造成了死锁,所以把主线程卡到这里了,造成了死锁
时间: 2024-11-05 04:52:30