iOS并发编程指南PDF下载
2011-12-09 13:54
597 查看
本文由论坛会员gungyi分享
官方地址:[/b]Concurrency Programming Guide[/b]
全文分四个部分:[/b]
1: Operation Queues[/b]
2: Dispatch Queues[/b]
3: Dispatch Sources[/b]
4: Migrating Away from Threads[/b]
iOS Concurrency Programming Guide[/b]
iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取 asynchronous design approach [/b]来解决并发的问题。
引入的异步技术有两个:
Grand Central Dispatch[/b]:系统管理线程,你不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的dispatch queue。Grand Central Dispatch会负责创建线程和调度你的任务。系统直接提供线程管理,比应用实现更加高效。
Operation Queue[/b]:Objective-C对象,类似于dispatch queue。你定义想要执行的任务,并添加任务到operation queue,后者负责调度和执行这些任务。和Grand Central Dispatch一样,Operation Queue也管理了线程,更加高效。
Dispatch Queue
基于C的执行自定义任务机制。dispatch queue按先进先出的顺序,串行或并发地执行任务。serial dispaptch queue一次只能执行一个任务,直接当前任务完成才开始出列并启动下一个任务。而concurrent dispatch queue则尽可能多地启动任务并发执行。
优点:
直观而简单的编程接口
提供自动和整体的线程池管理
提供汇编级调优的速度
更加高效地使用内存
不会trap内核under load
异步分派任务到dispatch queue不会导致queue死锁
伸缩性强
serial dispatch queue比锁和其它同步原语更加高效
Dispatch Sources
Dispatch Sources 是基于C的系统事件异步处理机制。一个Dispatch Source封装了一个特定类型的系统事件,当事件发生时提交一个特定的block对象或函数到dispatch queue。你可以使用Dispatch Sources监控以下类型的系统事件:
定时器
信号处理器
描述符相关的事件
进程相关的事件
Mach port事件
你触发的自定义事件
Operation Queues
Operation Queues是Cocoa版本的并发dispatch queue,由 NSOperationQueue 类实现。dispatch queue总是按先进先出的顺序执行任务,而 Operation Queues 在确定任务执行顺序时,还会考虑其它因素。最主要的一个因素是指定任务是否依赖于另一个任务的完成。你在定义任务时配置依赖性,从而创建复杂的任务执行顺序图
提交到Operation Queues的任务必须是 NSOperation 对象,operation object封装了你要执行的工作,以及所需的所有数据。由于 NSOperation 是一个抽象基类,通常你需要定义自定义子类来执行任务。不过Foundation framework自带了一些具体子类,你可以创建并执行相关的任务。
Operation objects会产生key-value observing(KVO)通知,对于监控任务的进程非常有用。虽然operation queue总是并发地执行任务,你可以使用依赖,在需要时确保顺序执行
原帖地址:http://www.cocoachina.com/bbs/read.php?tid=86050
详细请看附件PDF
PDF下载:
iOS并发编程指南
官方地址:[/b]Concurrency Programming Guide[/b]
全文分四个部分:[/b]
1: Operation Queues[/b]
2: Dispatch Queues[/b]
3: Dispatch Sources[/b]
4: Migrating Away from Threads[/b]
iOS Concurrency Programming Guide[/b]
iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取 asynchronous design approach [/b]来解决并发的问题。
引入的异步技术有两个:
Grand Central Dispatch[/b]:系统管理线程,你不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的dispatch queue。Grand Central Dispatch会负责创建线程和调度你的任务。系统直接提供线程管理,比应用实现更加高效。
Operation Queue[/b]:Objective-C对象,类似于dispatch queue。你定义想要执行的任务,并添加任务到operation queue,后者负责调度和执行这些任务。和Grand Central Dispatch一样,Operation Queue也管理了线程,更加高效。
Dispatch Queue
基于C的执行自定义任务机制。dispatch queue按先进先出的顺序,串行或并发地执行任务。serial dispaptch queue一次只能执行一个任务,直接当前任务完成才开始出列并启动下一个任务。而concurrent dispatch queue则尽可能多地启动任务并发执行。
优点:
直观而简单的编程接口
提供自动和整体的线程池管理
提供汇编级调优的速度
更加高效地使用内存
不会trap内核under load
异步分派任务到dispatch queue不会导致queue死锁
伸缩性强
serial dispatch queue比锁和其它同步原语更加高效
Dispatch Sources
Dispatch Sources 是基于C的系统事件异步处理机制。一个Dispatch Source封装了一个特定类型的系统事件,当事件发生时提交一个特定的block对象或函数到dispatch queue。你可以使用Dispatch Sources监控以下类型的系统事件:
定时器
信号处理器
描述符相关的事件
进程相关的事件
Mach port事件
你触发的自定义事件
Operation Queues
Operation Queues是Cocoa版本的并发dispatch queue,由 NSOperationQueue 类实现。dispatch queue总是按先进先出的顺序执行任务,而 Operation Queues 在确定任务执行顺序时,还会考虑其它因素。最主要的一个因素是指定任务是否依赖于另一个任务的完成。你在定义任务时配置依赖性,从而创建复杂的任务执行顺序图
提交到Operation Queues的任务必须是 NSOperation 对象,operation object封装了你要执行的工作,以及所需的所有数据。由于 NSOperation 是一个抽象基类,通常你需要定义自定义子类来执行任务。不过Foundation framework自带了一些具体子类,你可以创建并执行相关的任务。
Operation objects会产生key-value observing(KVO)通知,对于监控任务的进程非常有用。虽然operation queue总是并发地执行任务,你可以使用依赖,在需要时确保顺序执行
原帖地址:http://www.cocoachina.com/bbs/read.php?tid=86050
详细请看附件PDF
PDF下载:
iOS并发编程指南
相关文章推荐
- iOS并发编程指南——超级详细的指南,放弃线程,高效并发,实现完美体验吧!(更新PDF下载)
- iOS并发编程指南
- iOS并发编程指南--Dispatch Sources
- iOS并发编程指南(1)
- iOS并发编程指南--Dispatch Sources
- iOS并发编程指南之同步
- iOS并发编程指南
- iOS并发编程指南
- iOS并发编程指南——超级详细的指南,放弃线程,高效并发,实现完美体验吧
- iOS 并发编程指南
- iOS并发编程指南
- iOS并发编程指南
- IOS并发编程指南:Dispatch Queue任务执行与Dispatch Source
- 一步一步学习 iOS 5 编程(第二版) PDF 中文版-分享下载!
- iOS并发编程指南(1)
- iOS并发编程指南 2 -- Dispatch Queues
- iOS 界面设计指南(iOS UI)pdf下载
- iOS并发编程指南(4)
- iOS并发编程指南--Dispatch Sources
- iOS并发编程指南