您的位置:首页 > 运维架构

多线程之NSOperation(下)

2015-09-11 17:33 253 查看
我们继续多线程方面的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 面向对象的封装,它可以高度定制化,对依赖关系、队列优先级和线程优先级等提供了很好的支持,是我们实现复杂任务调度时的不二之选。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: