1、本质区别。
GCD是block块,是轻量级的,效率更高;
NSOperation是基于GCD的封装,效率比GCD低。
2、NSOperation可以设置依赖,任务2依赖任务1,就是任务2等待任务1执行完毕再执行;
GCD没有依赖,但是可以通过diapatch_barrier_async栅栏函数实现这个效果。
3、NSOperation可以判断自己当前的状态,是否正在执行,是否执行完毕,是否取消等;
GCD没有状态判断。
4、NSOperation的队列只有两种,主队列和其他队列;
GCD有主队列,串行队列,并发队列。
5、NSOperation可以设置自身的优先级,但是不一定优先级高就先执行;
GCD可以设置队列的优先级,无法给自身Block设置优先级。
6、NSOperation是一个抽象类,常用的是NSBlockOperation和NSInvocationOperation,可以自定义NSOperation;GCD没有继承,代码复用度不高。
iOS GCD和NSOperation的区别
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- GCD 和 NSOperation的区别主要表现在以下几方面: 1)GCD是一套 C 语言API,执行和操作简单高...
- Mac OS X 10.6及iOS4.0之后导入了可以使全体线程更高效运行,并且使并行处理应用更易开发的架构,GC...
- 1.iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程) ...
- 概述 iOS开发中,多线程是必然碰到的,自己这两天有空稍微总结了一下。简单的概念如线程/进程等就不说了。 何为多线...