Bison眼中的iOS开发多线程是这样的(三)
2016-04-06 11:49
197 查看
前面在《Bison眼中的iOS开发多线程是这样的(二)》一文中讲完了多线程的
队列:队列负责管理开发者提交的任务,GCD队列始终以先进先出的方式来处理任务,但由于任务的执行时间并不相同,因此先处理的任务并不一定先结束。队列既可是串行队列,也可是并发队列,串行队列每次只处理一个任务,必须前一任务完成后,才会执行下一任务;并放队列则可同时处理多个任务,So将会有多个任务并发执行。队列底层会维护一个线程池来处理用户提交的任务,线程池的作用就是执行队列管理的任务。串行队列底层的线程池只要维护一个线程即可,并发队列则想反。
任务:任务则为用户提交给队列的工作单元,这些任务将会提交给队列底层维护的线程池执行,因此这些任务会以多线程的方式执行。
综上所述,不难发现,使用GCD只需俩步即可。
1.创建队列。
2.将任务提交给队列。
接下来我让我们详细的玩一玩这GCD把
NSThread,不难发现这种方式的多线程实现起来非常的复杂,为了简化多线程的开发,iOS提供了GCD来实现多线程。GCD有俩个核心的概念:
队列:队列负责管理开发者提交的任务,GCD队列始终以先进先出的方式来处理任务,但由于任务的执行时间并不相同,因此先处理的任务并不一定先结束。队列既可是串行队列,也可是并发队列,串行队列每次只处理一个任务,必须前一任务完成后,才会执行下一任务;并放队列则可同时处理多个任务,So将会有多个任务并发执行。队列底层会维护一个线程池来处理用户提交的任务,线程池的作用就是执行队列管理的任务。串行队列底层的线程池只要维护一个线程即可,并发队列则想反。
任务:任务则为用户提交给队列的工作单元,这些任务将会提交给队列底层维护的线程池执行,因此这些任务会以多线程的方式执行。
综上所述,不难发现,使用GCD只需俩步即可。
1.创建队列。
2.将任务提交给队列。
接下来我让我们详细的玩一玩这GCD把
相关文章推荐
- 文顶顶iOS开发博客链接整理及部分项目源代码下载
- tableView怎么刷新置顶
- iOS 禁用第三方键盘
- Bison眼中的iOS开发多线程是这样的(二)
- Bison眼中的iOS开发多线程是这样的(一)
- 唐巧总结的40个国人iOS技术博客
- modal
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
- iOS个人整理37-Animation动画
- iOS新建项目文件管理规范
- iOS报错--"duplicate interface definition for class"
- iOS开发之AES+Base64数据混合加密与解密
- <libxml/tree.h> file not found
- iOS CocoaPods安装和使用图解
- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0
- iOS - 单例模式
- iOS XML转换字典类型(XMLDictionary)
- iOS 如何查看一段代码运行的时间
- 【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转
- ios-AutoLayout(自动布局代码控制)简单总结