看到觉得不错转载一下~~
-----------------------------------------------------------------------------------------------------------------------------------------------------
多线程编程指南
原著:Apple Inc.
翻译:謝業蘭
联系:xyl.layne@gmail.com
CocoaChina 社区
译名:多线程编程指南
原文:Threading Programming Guide
链接:
文档下载:
【翻译缘由—翻译本身也是强化学习的过程】
之前一直在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(核心框架)
术语表
结束语
推荐资源
分享到:
相关推荐
linux多线程编程指南
Threading Programming Guide是学习多线程的一份很好的资料!
Threading Programming Guide
1、多线程的理解 多进程和多线程都可以执行多个任务,线程是进程的一部分。线程的特点是线程之间可以共享 内存和变量,资源消耗少(不过在Unix环境中,多进程和多线程资源调度消耗差距不明显, Unix调度较快),...
多线程编程指南.pdf------ (Apple官方原版:Threading Programming Guide.pdf) Instruments 用户指南.pdf------ (Apple官方原版:Instruments User Guide.pdf) Blocks 编程要点.pdf------ (Apple官方原版:Blocks ...
Python多线程编程方式2 threading库的介绍源码
Python多线程编程文档说明 多进程编程 一、 multiprocessing 模块 1. multiprocessing 模块提供了多进程编程的能力 它的API非常类似于 threading 模块,但是也提供了一些threading 模块不具有的能力 相比于线程,它...
多线程编程指南 ................................................................................................................................................ I 简介.....................................
主要利用Qt,采用C++,实现多线程编程实现的描述.
本书介绍了Intel Threading Building Blocks 多核编程语言的知识,新手和专家都很适用。希望对刚入门的兄弟有帮助。
在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面。首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程的基础知识;在接下来的文章中,我将逐一讲述。NET平台上多线程编程的知识,诸如...
python多线程-threading模块.pdf
主要讲述Python多线程编程,主要讲述的thread库,threading库,Queue库等实现多线程编程
C#多线程源码C#多线程源码CSharp Threading Handbook
unity多线程开发框架,内含3个demo Flocking Massive:多线程Flocking Massive演示,prept运行 Boids!!! 纹理模糊:表明它是多么容易使用这个框架,重复的任务,使用“startmultithreadedworkloadexecution”...
C#多线程操作控件threading的使用
在.NET多线程编程这个系列教程中我们将一起来探讨多线程编程的各个方面。...在接下来的文章中,我将逐一讲述.NET平台上多线程编程的知识,诸如System.Threading命名空间的重要类以及方法,并就一些例子程序来作说明。
使用threading建立了一个多线程的基础程序 使用threading建立了一个多线程的基础程序 使用threading建立了一个多线程的基础程序 使用threading建立了一个多线程的基础程序 使用threading建立了一个多线程的基础...
在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用 threading模块实现多线程编程。这篇文章我们主要来看看...
threading模块API是面向对象的,其中最重要的是线程类Thread,此外还有很多线程相关函数,这些函数常用的有:返回当前处于活动状态的线程数。例如:#