NSOperation就是对GCD又封装了一下,底层还是GCD,它的使用方法是:将操作添加到队列就可以了,它是使用异步并发模式。
NSOperation 的核心概念:将"操作" 添加到 "队列"
GCD 将"任务"添加到 "队列"
特点:
- 不能直接使用!
目的:
- 定义子类共有的属性和方法
子类:
NSInvocationOperation
NSBlockOperation
GCD & NSOperation 对比
GCD 在 iOS 4.0 推出,主要针对多核处理器做了优化的并发技术,是C语言的
- 将"任务"[block]添加到 队列[串行/并发/主队列/全局队列] ,并且指定执行任务的函数[同步/异步]
- 线程间的通讯 dispatch_get_main_queue()
- 提供了一些 NSOperation 不具备的功能
- 一次执行
- 延迟执行
- 调度组(在op中也可以做到,有点麻烦)
NSOperation 在 iOS 2.0 推出的,苹果推出 GCD以后,对NSOperation 底层做了重写!
- 将操作[异步执行的任务] 添加到队列[并发队列],就会立刻异步执行
- mainQueue
- 提供了一些GCD 实现起来比较困难的功能
- 最大并发线程
- 队列的暂停/继续
- 取消所有操作
- 指定操作之间的依赖关系(GCD 用同步来实现)
网友评论