GCD

1.基本概念

  同步:只能在当前线程中执行任务,不具备开启新线程的能力
  同步函数:
  dispatch_sync(dispatch_queue_t  _Nonnull queue, <#^(void)block#>)

  异步: 可以在新的线程中执行任务,具备开启新线程的能力
  异步函数:
  dispatch_async(<#dispatch_queue_t  _Nonnull queue#>, <#^(void)block#>)

  并发队列:
       可以让多个任务并发(同时执行)(自动开启多个线程同时执行任务)
       并发功能只有在异步(dispatch_async)函数下才有效果
  串行队列:
       让任务一个接着一个的执行

 异步函数+并发队列 : 会开启多条线程,队列中的任务是并发执行
 异步函数+串行队列 : 会开一条线程,队列中的任务是串行的
 同步函数+并发队列 :  不会开线程,任务是串行执行的
 同步函数+串行队列 : 不会开线程,任务是串行执行的
 异步函数+主队列 : 不会开线程,任务是串行执行的
 同步函数+主队列 : 死锁


你可能感兴趣的:(GCD)