前面在《Bison眼中的iOS开发多线程是这样的(二)》一文中讲完了多线程的NSThread,不难发现这种方式的多线程实现起来非常的复杂,为了简化多线程的开发,iOS提供了GCD来实现多线程。GCD有俩个核心的概念:

队列:队列负责管理开发者提交的任务,GCD队列始终以先进先出的方式来处理任务,但由于任务的执行时间并不相同,因此先处理的任务并不一定先结束。队列既可是串行队列,也可是并发队列,串行队列每次只处理一个任务,必须前一任务完成后,才会执行下一任务;并放队列则可同时处理多个任务,So将会有多个任务并发执行。队列底层会维护一个线程池来处理用户提交的任务,线程池的作用就是执行队列管理的任务。串行队列底层的线程池只要维护一个线程即可,并发队列则想反。

任务:任务则为用户提交给队列的工作单元,这些任务将会提交给队列底层维护的线程池执行,因此这些任务会以多线程的方式执行。

综上所述,不难发现,使用GCD只需俩步即可。

1.创建队列。
2.将任务提交给队列。

接下来我让我们详细的玩一玩这GCD把

最新文章

  1. Windows下几个常用的和进程有关的命令
  2. 【网络】VPN和代理服务器的区别
  3. python笔记 - day5
  4. change the walltime for currently running PBS job (qalter pbs)
  5. IEnumerable接口的实现
  6. Android中使用speex将PCM录音格式转Wav格式
  7. [转]Chrome浏览器的离线安装包下载地址
  8. 然爸读书笔记(2014-10)----Bootsrap用户手册
  9. [转]JS基础之undefined与null的区别
  10. Inno Setup入门(二)——修改安装过程中的图片
  11. ajax提交到后台是中文乱码
  12. HTTP与HTTPS(转)
  13. 正益移动推出新产品正益工作 实现PaaS+SaaS新组合
  14. linux 下安装vscode
  15. shell 写的 jrottenberg/ffmpeg 转码
  16. threading 多线程使用
  17. Scrapy反爬
  18. java注解的概念理解
  19. fixed、absolute
  20. Rest数据服务查询类-根据sql查询

热门文章

  1. mongodb的常用操作(二)
  2. Zend-MVC intro
  3. java之其它命令
  4. Oracle使用%rowtype变量存储一行数据
  5. 语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient)
  6. Notes of the scrum meeting(2013/10/27)
  7. mysql中实现oracle中的rowid功能
  8. 从OGRE,GAMEPLAY3D,COCOS2D-X看开源
  9. Codeforces Round #352 (Div. 2) D. Robin Hood
  10. SQL SERVER开窗函数