iOS GCD和NSOperration 区别以及GCD的使用

1、NSOperration基于cocoa框架实现(相当于基于cgd上面封装的)(NSOperationQueue是高级的dispatch_queue_t),GCD底层是C语言实现;

 GCD优点: 尽量减少NSOperation的使用,因为GCD在多核CPU上线程切换的时间比较短 效率相对高些, 

NSOperration优点:实现多线程更加面向对象,GCD更加抽象,代码简洁

1NSOperration可以通过KVO监控操作进行的状态(准备、执行中、完成、被取消),GCD无; 

2、NSOperration可以很容易管理各个操作之间的依赖关系(addDependency:),CGD可以通过Block的嵌套实现,较为复杂;

 3、NSOperationQueue可以设置最大并发数量 (setMaxConcurrentOperationCount:),GCD无;


 GCD中队列分为两种:串行队列、并发队列。

 串行队列:按任务队列利得先后顺序执行、

 并发对列:任务无序同步执行;


iOS GCD和NSOperration

方法一:dispatch_queue_create:可以生成串行和并发队列

// 前两个方法生成的是串行队列;第三个生成的是并发队列


引用: https://www.jianshu.com/p/42b87509e5d2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容