GCD 与 NSOperation 的对比
KarMacartne
9年前
来自: http://my.oschina.net/TaciturnKnightYQ/blog/614507
GCD
将
任务(block)
添加到队列(串行/并发/主队列),并且指定任务执行的函数(同步/异步)GCD是底层的C语言构成的API
iOS 4.0 推出的,针对多核处理器的并发技术
在队列中执行的是由
block
构成的任务,这是一个轻量级的数据结构要停止已经加入
queue
的block
需要写复杂的代码需要通过
Barrier
或者同步任务设置任务之间的依赖关系只能设置队列的优先级
高级功能:
一次性 once
延迟操作 after
调度组
NSOperation
核心概念:把
操作(异步)
添加到队列(全局的并发队列)
OC 框架,更加面向对象,是对 GCD 的封装
iOS 2.0 推出的,苹果推出 GCD 之后,对 NSOperation 的底层全部重写
Operation
作为一个对象,为我们提供了更多的选择可以随时取消已经设定要准备执行的任务,已经执行的除外
可以跨队列设置操作的依赖关系
可以设置队列中每一个操作的优先级
高级功能:
最大操作并发数(GCD不好做)
继续/暂停/全部取消
跨队列设置操作的依赖关系