iOS GCD和NSOperation的区别

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没有继承,代码复用度不高。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容