Threading Programming Guide
2011-11-28 | © 2011 YouMi Mobile Co. Ltd. All Rights Reserved. [2]
2.3.3 设置线程的脱离状态 ................................................................................... 21
2.3.4 设置线程的优先级 ....................................................................................... 21
2.4 编写你线程的主体入口点 ...................................................................................... 22
2.4.1 创建一个自动释放池(Autorelease Pool) ................................................ 22
2.4.2 设置异常处理 ............................................................................................... 23
2.4.3 设置一个 Run Loop ...................................................................................... 23
2.5 中断线程 .................................................................................................................. 24
第三章 RUN LOOPS ............................................................................................................................. 26
3.1 RUN LOOP 剖析 ........................................................................................................ 26
3.1.1 Run Loop 模式 ............................................................................................. 27
3.1.2 输入源 ........................................................................................................... 28
3.2 何时使用 RUN LOOP ................................................................................................ 33
3.3 使用 RUN LOOP 对象 ............................................................................................... 34
3.3.1 获得 Run Loop 对象 ..................................................................................... 34
3.3.2 配置 Run Loop .............................................................................................. 34
3.3.3 启动 Run Loop .............................................................................................. 36
3.3.4 退出 Run Loop .............................................................................................. 38
3.3.5 线程安全和 Run Loop 对象 ......................................................................... 38
3.4 配置 RUN LOOP 的源 ............................................................................................... 39
3.4.1 定义自定义输入源 ....................................................................................... 39
3.4.2 配置定时源 ................................................................................................... 45
3.4.3 配置基于端口的输入源 ............................................................................... 46
第四章 线程同步 .................................................................................................................................... 57
4.1 同步工具 .................................................................................................................. 57
4.1.1 原子操作 ....................................................................................................... 57
4.1.2 内存屏障和 Volatile 变量 ........................................................................... 58
4.1.3 锁 ................................................................................................................... 58
4.1.4 条件 ............................................................................................................... 59
4.1.5 执行 Selector 例程 ........................................................................................ 60
4.2 同步的成本和性能 .................................................................................................. 60
4.3 线程安全和信号量 .................................................................................................. 61
4.4 线程安全设计的技巧 .............................................................................................. 62
4.4.1 完全避免同步 ............................................................................................... 62
4.4.2 了解同步的限制 ........................................................................................... 62
4.4.3 注意对代码正确性的威胁 ........................................................................... 62
4.4.4 当心死锁(Deadlocks)和活锁(Livelocks) ................................................ 64
4.4.5 正确使用 Volatile 变量 ................................................................................. 65