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,程序员可以将工作考虑为一个队列,而不是一堆线程,这种并行的抽象模型更容易掌握和使用。

 

原文地址:https://www.cnblogs.com/YTzZ/p/4918471.html