GCD(二)

165 阅读1分钟

1、GCD崩溃

image.png

代码在这会crash,看下crash在什么地方,__DISPATCH_WAIT_FOR_QUEUE__崩溃到这里,会死锁,我们现在去libdispatch源码里看下这个方法里发生了什么事

image.png

image.png

  1. 死锁:在当前线程(和当前队列相关的)同步的向串行队列里面添加任务,就会死锁。
  2. 函数    --  同步函数和异步函数
  3. 同步函数 - 立即执行, 阻塞当前线程  不具备开辟子线程的能力
  4. 异步函数 - 可以开辟子线程  -- 不会立即执行   不会阻塞当前线程
  5. 和当前队列相关的 -- 线程执行的任务是从队列里面取出来的