iOS 控制任务执行顺序
2018-05-07 13:00 dengchaojie_learner 阅读(474) 评论(0) 编辑 收藏 举报iOS 控制任务执行顺序,需求:
有两个任务都要放在子线程中执行, 且要保证A执行完再执行B.
如果你也有同样的需求, 可以从下面几种方法中挑选一种
实现方法
1.1. 方法一 使用GCD串行队列.
1.2 方法二 使用barrier.
1.3 方法三 使用NSOperation
在这之前简单介绍一下 NSOperation
* NSOperation 是对GCD的封装.
* NSOperation 是一个抽象类, 不能封装任务, 需要他的两个子类完成 NSInvocationOperation 和
NSBlockOperation
* 需要调用start 方法开启, 默认是同步执行,也就是说默认不会开线程, 也可以使用 cancel 方法取消, 但是只能取消未开始的任务,已经开始的任务,无法被取消.
* 在NSOperation 添加到queue后, 通常会在很短的时间内得到运行, 但是如果Operation有添加依赖或者queue 被设置成等待, 那可能需要等待.
1.4 方法四, 既然NSOperation是对GCD的封装,那么联想方法一, 我想能不能将NSOperationQueue也设置成串行队列.
https://www.2cto.com/kf/201707/659390.html