1、GCD崩溃
代码在这会crash,看下crash在什么地方,
__DISPATCH_WAIT_FOR_QUEUE__崩溃到这里,会死锁,我们现在去libdispatch源码里看下这个方法里发生了什么事
- 死锁:在当前线程(和当前队列相关的)同步的向串行队列里面添加任务,就会死锁。
- 函数 -- 同步函数和异步函数
- 同步函数 - 立即执行, 阻塞当前线程 不具备开辟子线程的能力
- 异步函数 - 可以开辟子线程 -- 不会立即执行 不会阻塞当前线程
- 和当前队列相关的 -- 线程执行的任务是从队列里面取出来的