多线程技术中GCD与NSOperationQueue的区别
来源:互联网 发布:和明星谈恋爱知乎 编辑:程序博客网 时间:2024/06/08 14:32
1.NSOperationQueue是对GCD的一层封装,GCD是基于C语言程序的类库,而NSOperationQueue则是OC层面的。
2.GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-消费者模型是其中之一),使用NSOperationQueue能够按照正确的顺序执行操作。GCD则没有内建的依赖关系支持。NSOperationQueue支持KVO,意味着我们可以观察任务的执行状态。
3.. 性能
GCD更接近底层,而NSOperationQueue则更高级抽象,所以GCD在追求性能的底层操作来说,是速度最快的。这取决于使用Instruments进行代码性能分析,如有必要的话
4. 从异步操作之间的事务性,顺序行,依赖关系。GCD需要自己写更多的代码来实现,而NSOperationQueue已经内建了这些支持
5. 如果异步操作的过程需要更多的被交互和UI呈现出来,NSOperationQueue会是一个更好的选择。底层代码中,任务之间不太互相依赖,而需要更高的并发能力,GCD则更有优势
别忘了高德纳的教诲:“在大概97%的时间里,我们应该忘记微小的性能提升。过早优化是万恶之源。”只有Instruments显示有真正的性能提升时才有必要用低级的GCD。
0 0
- 多线程技术中GCD与NSOperationQueue的区别
- NSOperationQueue与GCD的区别
- GCD与NSOperationQueue的区别
- 多线程编程 GCD和NSOperationQueue的区别
- NSOperationQueue和GCD的区别
- GCD和NSOperationQueue的区别
- GCD与NSOperationQueue的比较
- 多线程 GCD NSOperationQueue NSThread
- iOS开发中关于多线程的问题(NSOperationQueue,NSThread,GCD)
- GCD 与 NSOperationQueue
- iOS NSOperationQueue与GCD
- 多线程(中) 1.NSThread 2.NSOperationQueue 3.NSObject 4.GCD
- iOS多线程,NSThread ,NSOperationQueue ,GCD
- 【网络】多线程--NSThread、GCD、NSOperationQueue
- NSThread、NSOperation/NSOperationQueue、GCD多线程
- 【iOS】多线程NSOperation 与 GCD的区别
- GCD和NSOperationQueue的区别和相似处
- iOS GCD 与 NSOperationQueue对比
- 冰点播放器V2.0发布
- float数据在内存中是怎么存储的
- leetcode Restore IP Address
- 说说
- 关键字
- 多线程技术中GCD与NSOperationQueue的区别
- 标识符
- 注释
- 常量
- 进制转换
- linux 命令之head
- 变量
- yii1.1.x学习笔记(3)缓存
- Java基础—java基础语法之数组