iOS多线程之NSOperation和GCD的比较
2015-06-01 23:30
190 查看
摘自:/article/1650074.html
GCD是基于c的底层api,NSOperation属于object-c类。ios 首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。
相对于GCD:
1,NSOperation拥有更多的函数可用,具体查看api。
2,在NSOperationQueue中,可以建立各个NSOperation之间的依赖关系。
3,有kvo,可以监测operation是否正在执行(isExecuted)、是否结束(isFinished),是否取消(isCanceld)。
4,NSOperationQueue可以方便的管理并发、NSOperation之间的优先级。
GCD主要与block结合使用。代码简洁高效。
GCD也可以实现复杂的多线程应用,主要是建立个个线程时间的依赖关系这类的情况,但是需要自己实现相比NSOperation要复杂。
具体使用哪个,依需求而定。 从个人使用的感觉来看,比较合适的用法是:除了依赖关系尽量使用GCD,因为苹果专门为GCD做了性能上面的优化。
GCD是基于c的底层api,NSOperation属于object-c类。ios 首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。
相对于GCD:
1,NSOperation拥有更多的函数可用,具体查看api。
2,在NSOperationQueue中,可以建立各个NSOperation之间的依赖关系。
3,有kvo,可以监测operation是否正在执行(isExecuted)、是否结束(isFinished),是否取消(isCanceld)。
4,NSOperationQueue可以方便的管理并发、NSOperation之间的优先级。
GCD主要与block结合使用。代码简洁高效。
GCD也可以实现复杂的多线程应用,主要是建立个个线程时间的依赖关系这类的情况,但是需要自己实现相比NSOperation要复杂。
具体使用哪个,依需求而定。 从个人使用的感觉来看,比较合适的用法是:除了依赖关系尽量使用GCD,因为苹果专门为GCD做了性能上面的优化。
相关文章推荐
- iOS键盘与NSLayoutConstraint
- ios动画学习(二)
- iOS开发学习第十课——高级指针
- ios中的coredata的使用
- 判断IOS判断以便进行适配
- iOS NSString追加字符串的方法
- iOS 加急审核亲体验
- iOS开发实战技巧
- iOS之画饼图
- iOS开发 之iOS沙盒(sandbox)机制和文件操作(一)
- iOS 内核堆利用技术点之 mach_msg ool
- ios指南针的实现(CoreLocation)
- ios 根据类名获取类名的属性
- iOS中NSLog输出格式大全
- <iOS>关于Xcode上的Other linker flags
- 【iOS百度地图系列_1】在地图上定位当前位置
- IOS高级开发~Runtime(四)
- iOS企业开发In House ipa发布流程
- 【iOS百度地图系列_0】百度地图的配置及实现基本地图
- iOS上的死锁