1.基本概念
同步:只能在当前线程中执行任务,不具备开启新线程的能力
同步函数:
dispatch_sync(dispatch_queue_t _Nonnull queue, <#^(void)block#>)
异步: 可以在新的线程中执行任务,具备开启新线程的能力
异步函数:
dispatch_async(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)
并发队列:
可以让多个任务并发(同时执行)(自动开启多个线程同时执行任务)
并发功能只有在异步(dispatch_async)函数下才有效果
串行队列:
让任务一个接着一个的执行
异步函数+并发队列 : 会开启多条线程,队列中的任务是并发执行
异步函数+串行队列 : 会开一条线程,队列中的任务是串行的
同步函数+并发队列 : 不会开线程,任务是串行执行的
同步函数+串行队列 : 不会开线程,任务是串行执行的
异步函数+主队列 : 不会开线程,任务是串行执行的
同步函数+主队列 : 死锁