GCD 基本概念

引言


# 一. 什么是GCD?

Grand Central Dispatch是iOS4引入的强大的线程处理技术,它是基于XNU内核开发的,性能极为优越,是一套低层API。

它是苹果为多核的并行运算提出的解决方案,所以会自动合理地利用更多的CPU内,最重要的是它会自动管理线程的生命周期(创建线程、调度任务、销毁线程),完全不需要我们管理,我们只需要告诉干什么就行。同时它使用的也是C语言,不过由于使用了 Block(Swift里叫做闭包),使得使用起来更加方便,而且灵活。

GCD的API很大程度上基于block,配合block使用时,GCD非常简单易用且能发挥其最大能力。


# 二. GCD的优势

# 1. 易用:

GCD比NSThread更简单易用。由于GCD基于work unit而非像thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务。基于block的血统导致它能极为简单得在不同代码作用域之间传递上下文。

# 2. 效率:

GCD被实现得如此轻量和优雅,使得它在很多地方比之专门创建消耗资源的线程更实用且快速。这关系到易用性:导致GCD易用的原因有一部分在于你可以不用担心太多的效率问题而仅仅使用它就行了。

# 3. 性能:

GCD自动根据系统负载来增减线程数量,这就减少了上下文切换以及增加了计算效率。

  1. GCD是苹果公司为多核的并行运算提出的解决方案
  2. GCD会自动利用更多的CPU内核(比如双核、四核)
  3. GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)
  4. 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码