GCD基本思想
GCD的基本思想就是操作s放在队列s中去执行
1.操作使用Blocks定义
2.队列负责调度任务执行所在线程遗迹具体的执行时间
3.队列的特点是先进先出(FIFO)的,新添加至队列的操作都会排在队尾
提示
GCD的函数都是以diapatch(分配、调度)开头的
队列
dispatch_queue_t
串行队列,队列中的任务只会顺序执行
并行队列,队列中的任务通常会并发执行
操作
dispatch_async 异步操作,会并发执行,无法确定任务的执行顺序
dispatch_sync 同步执行,会依次顺序执行,能够决定任务的执行顺序
串行队列,同步任务。不需要新建线程
串行队列,异步任务。需要一个子线程,线程的创建和回收不需要程序员参与(最安全的一个选择,串行队列只能创建)
并行队列,同步任务。不需要创建线程
并行队列,同步任务,有多少个任务,就开N个线程执行
无论什么队列什么任务,线程的创建和回收都不需要程序员参与
线程的创建回收工作是由队列负责的
GCD小结
1.通过GCD,程序员不用直接喝线程打交道,只需要向队列添加代码块即可
2.GCD在后端管理着一个线程池,GCD不仅决定着代码块将在哪个线程被执行,它还根据可用的系统资源对这些线程进行管理。从而让开发者从线程管理的工作中解放出来,通过集中的管理线程,缓解大量线程呗创建的问题
3.使用GCD,程序员可以将工作考虑为一个队列,而不是一堆线程,这种并行的抽象模型更容易掌握和使用。