GCD

1.基本概念

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

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

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

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容