- 博客(1)
- 资源 (1)
- 收藏
- 关注
原创 ios获取设备信息方法
1.系统调用: BOOL result; int err; char value[32]; size_t valueLen; result = NO; valueLen = sizeof(value); err = sysctlbyname("hw.machine", value,
2013-03-29 09:59:43 549
ios并发编程指南
目录
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. 2.2. 2.3. 2.4. 2.5.
2.6.
Operation Objects ........................................................................................ 9 并发 VS 非并发Operations.....................................................................11 创建一个NSInvocationOperation 对象...................................................11 创建一个 NSBlockOperation 对象............................................................ 12 自定义 Operation 对象.............................................................................. 13
执行主任务.................................................................................................. 14 响应取消事件.............................................................................................. 16 为并发执行配置 operations .......................................................................17 维护 KVO 依从.............................................................................................21
自定义一个 Operation 对象的执行行为..................................................23 配置 operation 之间的依赖关系................................................................23 修改 Operation 的执行优先级 ................................................................... 24 修改底层线程的优先级.............................................................................. 25 设置一个 completion block.........................................................................26
实现 Operation 对象的技巧......................................................................26 第2页 / 共85页
2.7.
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
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. 3.2. 3.3. 3.4.
简介............................................................................................................37 Queue 相关的技术 .................................................................................... 38 使用Block实现任务.................................................................................39 创建和管理 Dispatch Queue .....................................................................41
获得全局并发 Dispatch Queue...................................................................41 创建串行 Dispatch Queue...........................................................................41 运行时获得公共 Queue..............................................................................42 Dispatch Queue 的内存管理.......................................................................42 在 Queue 中存储自定义上下文信息.........................................................43 为 Queue 提供一个清理函数.....................................................................43
添加任务到 Queue ....................................................................................44 添加单个任务到 Queue..............................................................................44
第3页 / 共85页
3.5.
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
任务完成时执行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. 关于DispatchSource.................................................................................52 4.2. 创建DispatchSource.................................................................................53
编写和安装一个事件处理器...................................................................... 53 安装一个取消处理器.................................................................................. 57 修改目标 Queue..........................................................................................57 关联自定义数据到 dispatch source ...........................................................57 Dispatch Source 的内存管理.......................................................................58
4.3. Dispatch Source 示例.................................................................................58 创建一个定时器.......................................................................................... 58 从描述符中读取数据.................................................................................. 60 向描述符写入数据...................................................................................... 63 监控文件系统对象...................................................................................... 65 监测信号...................................................................................................... 67
第4页 / 共85页
iOS 并发编程指南 GungYi Inc http://www.gungyi.com
监控进程...................................................................................................... 68 4.4. 取消一个 Dispatch Source .........................................................................69 4.5. 挂起和继续DispatchSource.....................................................................70
5. Migrating Away from Threads...............................................................................71
5.1. 使用DispatchQueue替代线程................................................................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
2012-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人