论坛首页 移动开发技术论坛

【转】多线程编程指南[中文完整翻译版] – Threading Programming Guide

浏览 7328 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-20  
iOS

看到觉得不错转载一下~~

-----------------------------------------------------------------------------------------------------------------------------------------------------

多线程编程指南 

原著:Apple Inc. 

翻译:謝業蘭 

联系:xyl.layne@gmail.com 

鸣谢:有米移动广告平台 

             CocoaChina 社区


译名:多线程编程指南
原文:Threading Programming Guide
链接:

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html#//apple_ref/doc/uid/10000057i-CH1-SW1PDF

文档下载:

http://vdisk.weibo.com/s/1An7J

 

【翻译缘由—翻译本身也是强化学习的过程】

之前一直在CocoaChina上面潜水,虽然做iOS开发也快2年了,但是总觉得缺少了点什么。以前查看英文API文档,有些细节总是记不住,每次看完之后也没什么印象。忽然有一天有人向我抱怨说查看官方英文API文档太痛苦了,然后我就想如果我把一些常用的官方文档翻译为中文的话,或许可以帮助这批需要帮助的人,然后偶就心血来潮,开始了自娱自乐的翻译之旅。帮助别人的同时,自己也获得快乐。多线程编程在开发应用的时候非常有帮助。比如你可以在后台加载图片,等图片加载完成后再在主线程更新等,或者在后台处理一些需要占用CPU很长时间的事件(比如请求服务器,加载数据等)。要体会多线程编程的好处,还得多实战,结合使用多种多线程技术。特别要注意Run Loop的使用,很多开发者在编写多线程应用的时候很少关注过Run Loop。如果你仔细阅读并掌握Run Loop的细节,将会帮助你写出更优美的代码。同步是多线程编程的老生常谈,估计大学时候大家都基本熟悉了同步的重要性。本文在翻译过程中发现很多地方直译成中文比较晦涩,所以采用了意译的方式,这不可避免的造成有一些地方可能和原文有一定的出入,所以如果你阅读的时候发现有任何的错误都可以给我发邮件:xyl.layne@gmail.com

大家也可以关注我微博一起沟通交流学习。
微博地址: http://weibo.com/u/1826448972

最后希望这篇文档能帮上那些感觉看官方英文文档困难的人。如果可以我还是推荐尽量查看英文原文档,毕竟那是原汁原味,翻译总无法避免有一定的疏漏。

下期预告:Instruments用户指南

因为翻译的时候写在word里面,格式太多,图片上传麻烦,所以干脆直接转换为PDF提供给大家下载。

以下提供目录预览:

目录

多线程编程指南
简介
本文档结构
第一章    关于多线程编程
1.1    什么是多线程
1.2    线程术语
1.3    多线程的替代方法
1.4    线程支持
1.4.1    线程包
1.4.2    Run Loops
1.4.3    同步工具
1.4.4    线程间通信
1.5    设计技巧
1.5.1    避免显式创建线程
1.5.2    保持你的线程合理的忙
1.5.3    避免共享数据结构
1.5.4    多线程和你的用户界面
1.5.5    了解线程退出时的行为
1.5.6    处理异常
1.5.7    干净地中断你的线程
1.5.8    线程安全的库
第二章    线程管理
2.1    线程成本
2.2    创建一个线程
2.2.1    使用NSThread
2.2.2    使用POSIX的多线程
2.2.3    使用NSObject来生成一个线程
2.2.4    使用其他线程技术
2.2.5    在Cocoa程序上面使用POSIX线程
2.3    配置线程属性
2.3.1    配置线程的堆栈大小
2.3.2    配置线程本地存储
2.3.3    设置线程的脱离状态
2.3.4    设置线程的优先级
2.4    编写你线程的主体入口点
2.4.1    创建一个自动释放池(Autorelease Pool)
2.4.2    设置异常处理
2.4.3    设置一个Run Loop
2.5    中断线程
第三章    RUN LOOPS
3.1    RUN LOOP剖析
3.1.1    Run Loop 模式
3.1.2    输入源
3.2    何时使用RUN LOOP
3.3    使用RUN LOOP对象
3.3.1    获得Run Loop对象
3.3.2    配置Run Loop
3.3.3    启动Run Loop
3.3.4    退出Run Loop
3.3.5    线程安全和Run Loop对象
3.4    配置RUN LOOP 的源
3.4.1    定义自定义输入源
3.4.2    配置定时源
3.4.3    配置基于端口的输入源
第四章    线程同步
4.1    同步工具
4.1.1    原子操作
4.1.2    内存屏障和 Volatile 变量
4.1.3    锁
4.1.4    条件
4.1.5    执行Selector例程
4.2    同步的成本和性能
4.3    线程安全和信号量
4.4    线程安全设计的技巧
4.4.1    完全避免同步
4.4.2    了解同步的限制
4.4.3    注意对代码正确性的威胁
4.4.4    当心死锁(Deadlocks)和活锁(Livelocks)
4.4.5    正确使用Volatile变量
4.5    使用原子操作
4.6    使用锁
4.6.1    使用POSIX互斥锁
4.6.2    使用NSLock类
4.6.3    使用@synchronized指令
4.6.4    使用其他Cocoa锁
4.7    使用条件
4.7.1    使用NSCondition类
4.7.2    使用POSIX条件
附录A:线程安全总结
COCOA
基础框架(Fondation Framework)的线程安全
Application Kit框架的线程安全
Core Data框架
CORE FOUNDATION(核心框架)
术语表
结束语
推荐资源

转载自:http://www.cocoachina.com/bbs/read.php?tid=87592
转载此文请注明:http://dev.youmi.net/2011/12/threading-programming-guide.html
   发表时间:2011-12-24  
apple方面的中文开发资料在国内还是很欠缺的,楼主做的非常不错,希望能做出更大的贡献
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics