没有合适的资源?快使用搜索试试~ 我知道了~
iOS并发编程指南1
需积分: 0 0 下载量 182 浏览量
2022-08-03
11:34:08
上传
评论
收藏 547KB PDF 举报
温馨提示
试读
85页
1.简介61.4. 异步设计技术 9执行主任务 14响应取消事件 16维护 KVO 依从 212.6. 自定义一个 Operation 对象的执行行为 23配置
资源详情
资源评论
资源推荐
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
第 2 页 / 共 85 页
目录
1. 简介......................................................................................................................... 6
1.1. Dispatch Queue ............................................................................................ 6
1.2. Dispatch Sources .......................................................................................... 7
1.3. Operation Queues ........................................................................................ 8
1.4. 异步设计技术 .............................................................................................. 9
2. Operation Queues ................................................................................................... 9
2.1. Operation Objects ........................................................................................ 9
2.2. 并发 VS 非并发 Operations ..................................................................... 11
2.3. 创建一个 NSInvocationOperation 对象 ................................................... 11
2.4. 创建一个 NSBlockOperation 对象 ............................................................ 12
2.5. 自定义 Operation 对象 .............................................................................. 13
执行主任务.................................................................................................. 14
响应取消事件.............................................................................................. 16
为并发执行配置 operations ....................................................................... 17
维护 KVO 依从 ............................................................................................. 21
2.6. 自定义一个 Operation 对象的执行行为 .................................................. 23
配置 operation 之间的依赖关系 ................................................................ 23
修改 Operation 的执行优先级 ................................................................... 24
修改底层线程的优先级.............................................................................. 25
设置一个 completion block ......................................................................... 26
2.7. 实现 Operation 对象的技巧 ...................................................................... 26
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
第 3 页 / 共 85 页
Operation 对象的内存管理 ........................................................................ 26
处理错误和异常.......................................................................................... 29
2.8. 为 Operation 对象确定一个适当的范围 .................................................. 30
2.9. 执行 Operations ......................................................................................... 30
添加 Operations 到 Operation Queue ........................................................ 31
手动执行 Operations ................................................................................... 32
取消 Operations ........................................................................................... 34
等待 Operations 完成 .................................................................................. 35
挂起和继续 Queue ...................................................................................... 36
3. Dispatch Queues ................................................................................................... 37
3.1. 简介 ............................................................................................................ 37
3.2. Queue 相关的技术 .................................................................................... 38
3.3. 使用 Block 实现任务 ................................................................................. 39
3.4. 创建和管理 Dispatch Queue ..................................................................... 41
获得全局并发 Dispatch Queue ................................................................... 41
创建串行 Dispatch Queue ........................................................................... 41
运行时获得公共 Queue .............................................................................. 42
Dispatch Queue 的内存管理 ....................................................................... 42
在 Queue 中存储自定义上下文信息 ......................................................... 43
为 Queue 供一个清理函数 ..................................................................... 43
3.5. 添加任务到 Queue .................................................................................... 44
添加单个任务到 Queue .............................................................................. 44
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
第 4 页 / 共 85 页
任务完成时执行 Completion Block ............................................................ 46
并发地执行 Loop Iteration .......................................................................... 47
在主线程中执行任务.................................................................................. 48
任务中使用 Objective-C 对象 ..................................................................... 48
3.6. 挂起和继续 queue ..................................................................................... 48
3.7. 使用 Dispatch Semaphore 控制有限资源的使用 .................................... 49
3.8. 等待 queue 中的一组任务 ........................................................................ 50
3.9. Dispatch Queue 和线程安全性 ................................................................. 50
4. Dispatch Sources ................................................................................................... 52
4.1. 关于 Dispatch Source ................................................................................. 52
4.2. 创建 Dispatch Source ................................................................................. 53
编写和安装一个事件处理器...................................................................... 53
安装一个取消处理器.................................................................................. 57
修改目标 Queue .......................................................................................... 57
关联自定义数据到 dispatch source ........................................................... 57
Dispatch Source 的内存管理....................................................................... 58
4.3. Dispatch Source 示例 ................................................................................. 58
创建一个定时器.......................................................................................... 58
从述符中读取数据.................................................................................. 60
向述符写入数据...................................................................................... 63
监控文件系统对象...................................................................................... 65
监测信号...................................................................................................... 67
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
第 5 页 / 共 85 页
监控进程...................................................................................................... 68
4.4. 取消一个 Dispatch Source ......................................................................... 69
4.5. 挂起和继续 Dispatch Source ..................................................................... 70
5. Migrating Away from Threads ............................................................................... 71
5.1. 使用 Dispatch Queue 替代线程 ................................................................ 71
5.2. 消除基于锁的代码 .................................................................................... 74
实现异步锁.................................................................................................. 75
同步执行临界区.......................................................................................... 76
5.3. 改进循环代码 ............................................................................................ 77
5.4. 替换线程 Join ............................................................................................. 79
5.5. 修改“生产者-消费者”实现 ....................................................................... 80
5.6. 替换 Semaphore 代码 ............................................................................... 82
5.7. 替换 Run-Loop 代码 .................................................................................. 82
5.8. 与 POSIX 线程的兼容性 ............................................................................ 83
剩余84页未读,继续阅读
thebestuzi
- 粉丝: 28
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 1.vsdx
- zephyr sdk package 2
- zephyr sdk package 1
- optimization.ipynb
- 数据库标识码BSM重排序工具、重构标识码工具
- 基于C语言的校园导航系统报告.doc
- __init__.py
- tensorflow-gpu-2.6.5-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-rocm-2.13.1.600-cp38-cp38-manylinux2014-x86-64.whl
- tensorflow-rocm-2.13.0.570-cp311-cp311-manylinux2014-x86-64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0