看到觉得不错转载一下~~
-----------------------------------------------------------------------------------------------------------------------------------------------------
多线程编程指南
原著: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环境下进行多线程编程的一本实用指南。在Linux系统中,多线程编程是一种高效利用系统资源、提高程序并发执行能力的技术。本指南将深入探讨多线程的概念、原理以及实际应用,旨在帮助...
### Threading Programming Guide中文版知识点概述 #### 一、多线程编程概念及重要性 **1.1 什么是多线程** 多线程是指在单一程序或进程中同时执行多个控制流的技术。它允许计算机系统有效地利用多个处理器核心,...
本文档,即《线程编程指南》(Threading Programming Guide),由苹果公司于2009年发布,旨在为开发者提供关于如何在Apple-labeled计算机上进行高效、安全的线程编程的指导。 ### 线程编程的重要性 线程编程允许一...
iOS多线程编程指南是一份详细介绍在iOS平台下如何进行多线程编程的官方文档。文档从多线程基础概念出发,逐步深入到高级用法,为开发者提供了全面的指导和参考。这份指南不仅涵盖理论知识,而且提供了丰富的实践技巧...
多线程编程指南.pdf------ (Apple官方原版:Threading Programming Guide.pdf) Instruments 用户指南.pdf------ (Apple官方原版:Instruments User Guide.pdf) Blocks 编程要点.pdf------ (Apple官方原版:Blocks ...
**Intel IA-32 Volume 3A-System Programming Guide** 是Intel为开发者提供的详细指南之一,主要介绍Intel 64位与IA-32架构下的系统编程相关知识。这份文档是Intel 64和IA-32架构软件开发手册的一部分,手册共分为五...
- **多线程编程**:深入探讨了多线程编程的基本原理、最佳实践以及Hyper-Threading Technology的相关细节。 - **性能优化**:提供了关于如何利用Intel 64和IA-32架构特性来优化应用程序性能的指南。 - **安全性和...
5. **Hyper-Threading 技术**:Hyper-Threading Technology(超线程技术)允许单个物理核心同时执行多个线程,但其使用依赖于特定的硬件和软件配置。 #### 五、结语 《Intel IA-32 System Programming Guide》是...
- **Hyper-Threading Technology (超线程技术)**:这是一种多线程处理技术,允许单个物理处理器核心同时执行多个线程。该技术提高了处理器的并行处理能力,从而提升了整体性能。使用超线程技术需要满足一系列条件,...
如今关于iOS多线程的文章层出不穷,但我觉得若想更好的领会各个实践者的文章,应该先仔细读读官方的相关文档,打好基础,定会有更好的效果。文章中有对官方文档的翻译,也有自己的理解,官方文档中代码片段的示例在...
- **多线程编程**:针对多核心处理器环境下的并发编程进行了深入讨论。 - **安全性和加密技术**:涵盖安全相关的硬件特性和软件实践。 ##### 3. 版权声明与责任限制 - **版权声明**:文档明确指出所有信息均与...
《Python 3 编程初学者指南》第二版是一本专为计算机科学初学者设计的教材,由John Hunt撰写,并且是"Undergraduate Topics in Computer Science"系列的一部分。该系列书籍由Ian Mackie等多位国际知名学者担任编辑...
- **多线程编程**:IA-32支持多线程编程,开发者可以通过并行处理来提升应用性能。 ### 三、注意事项 #### 1. 预留特性 - 开发者应注意不要依赖于任何标记为“预留”或“未定义”的特性或指令,因为这些功能可能会...
### IA32架构软件开发手册...尽管中文版可能存在翻译上的不足,但英文原版仍是学习和参考的最佳选择。对于从事IA-32架构底层开发的专业人士而言,这份手册不仅是必备工具书,也是深入了解该领域专业知识的重要途径。
1. **多线程注意事项 (A note on multi-threading)** 2. **多进程与多线程 (Multiprocessing vs multithreading)** 3. **异步和事件驱动架构 (As⁴nchronous and event-driven architecture)** 4. **面向服务的架构 ...
对于希望深入了解C# WinForms编程以及多线程技术的读者,建议参考以下资源: 1. [C# 编程指南](https://docs.microsoft.com/zh-cn/dotnet/csharp/) 2. [Windows Forms 应用程序]...
4. 系统编程指南第一部分(System Programming Guide, Part 1):这一部分应该是针对系统编程的内容,包括但不限于中断和异常处理、多任务处理、内存管理和保护等。该指南为操作系统开发者提供了必要的技术细节,使...
4. **系统编程指南 第一部分 (System Programming Guide, Part 1)**:提供了与系统设计相关的深入指导。 5. **系统编程指南 第二部分 (System Programming Guide, Part 2)**:继续提供更高级的系统设计指导。 这五...
4. **系统编程指南(System Programming Guide)**:提供了有关系统级编程的重要信息。 本篇主要聚焦于《Intel 32指令集手册卷2:指令集参考A-M》(Order Number 253666),这部分内容对从字母A到M的所有指令进行了...