我们继续多线程方面的NSOperation的深入研究:
定制NSOperation对象的执行行为
- 配置依赖关系: 主要方法: addDependency: (NSOperation )op 和 removeDependency: (NSOperation )op
- 修改Operation在队列中的优先级 最简单的方法是: setQueuePriority : 方法来提高优先级
- 修改Operation执行任务线程的优先级 最简单的方法是 : setThreadPriority
- 设置Completion Block 可以在该block中只用GCD 来保证从主线程更新UI
- 执行Operation对象 : 两种方式 有些细节需要注意 如设置最大并发Operation数量时等等
- 取消Operation 最简单的方法是: NSOperationQueue的cancelAllOperation NSOperation的cancel
- 等待Operation执行完成 方法是: waitUtilFInished 和waitUntilAllOperationAreFinished 方法
暂停和恢复 Operation Queue 最简单地方法是 operationQueue的 setSuspended方法, 然而这个方法并不能单独暂停执行一个operation方法
总结: 我们应该尽可能地直接使用队列而不是线程,让系统去与线程打交道,而我们只需定义好要调度的任务就可以了。一般情况下,我们也完全不需要去自定义一个并发的 operation ,因为在与 operation queue 结合使用时,operation queue 会自动为非并发的 operation 创建一个线程。Operation Queues 是对 GCD 面向对象的封装,它可以高度定制化,对依赖关系、队列优先级和线程优先级等提供了很好的支持,是我们实现复杂任务调度时的不二之选。