多线程实现方案之GCD
2015-12-24 23:55
155 查看
<!doctype html>
多线程实现方案之GCD
GCD是苹果公司为多核的并行运算提出的解决方案
GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程
程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码
执行的步骤
将(任务)添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行
任务的取出遵循队列的FIFO原则:先进先出,后进后出
- 同步
- 异步
系统内部自带了一个并发的全区队列,不需要手动创建
全局队列
注意:
串行队列 知识决定 将队列中的任务取出后,放在线程中,是有序的执行的
系统内部自带了一个朱队列
异步函数 + 串行队列 会创建一个子线程 ,并且执行这些任务是有序的
异步函数 + 并发队列 创建的线程个数由系统决定,执行队列中的这些人物是无序的
多线程实现方案之GCD
多线程实现方案之GCD
GCD是底层是一种C语言,主要是替代NSthread等线程技术GCD是苹果公司为多核的并行运算提出的解决方案
GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程
程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码
执行的步骤
将(任务)添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行
任务的取出遵循队列的FIFO原则:先进先出,后进后出
执行任务
GCD中有2个用来执行任务的常用函数- 同步 只决定只在当前的线程中执行任务
dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
- 异步 可以具备开线程的能力
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
队列的类型
并发队列 只决定执行任务是同时进行的,没有循序系统内部自带了一个并发的全区队列,不需要手动创建
全局队列
注意:
并发队列之后在异步函数中才有效
串行队列 知识决定 将队列中的任务取出后,放在线程中,是有序的执行的
系统内部自带了一个朱队列
添加进主队列的任务都是在主线程中执行的
异步函数 + 串行队列 会创建一个子线程 ,并且执行这些任务是有序的
异步函数 + 并发队列 创建的线程个数由系统决定,执行队列中的这些人物是无序的
相关文章推荐
- c语言:输出一个数组,判断是否存在问题,若有,请找出问题并改正
- 12月24日总结及下月计划安排
- Masonry应用【美图秀秀首页界面自动布局】
- vyos的vrrp配置
- [转]easyui datagrid 批量编辑和提交
- 黑马程序员__java之IO流
- Java Day4
- 捕获异常崩溃日志(iOS)
- 一年多没写博客了,忙死了
- 注解--原生态底层
- thread safe vs reentrant
- 完全卸载Vmware
- dom 中事件
- 打算翻译几篇pyqt的教程
- 使用HttpClient实现数据抓取
- Gradle中打jar包的方法
- 部署和调优 2.8 mysql主从配置-2
- linux 命令
- 图片打马赛克
- 【WIN10】WIN2D——圖層