IOS多线程之NSoperation和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要复杂。

NSOperationQueue
NSOperationQueue的队列类型

主队列

[NSOperationQueue mainQueue]

凡是添加到主队列中的任务(NSOperation),都会放到主线程中执行

非主队列(其他队列)

[[NSOperationQueue alloc] init]

同时包含了:串行、并发功能

添加到这种队列中的任务(NSOperation),就会自动放到子线程中执行

GCD
1 - 主要与block结合使用。代码简洁高效。

2 - GCD也可以实现复杂的多线程应用,主要是建立个个线程时间的依赖关系这类的情况,但是需要自己实现相比NSOperation要复杂。具体使用哪个,依需求而定。

GCD的队列类型

并发队列

全局

自己创建的

串行队列

主队列

自己创建的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值