iOS

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

上一篇 下一篇

猜你喜欢

热点阅读