iOS GCD和NSOperration 区别以及GCD的使
2019-03-06 本文已影响0人
focusHYD
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