gpt4 book ai didi

ios - NSOperation 层次结构,工作单元

转载 作者:行者123 更新时间:2023-11-28 20:22:59 26 4
gpt4 key购买 nike

所以我想知道将长任务分解为 NSOperations 的最佳方法是什么。如果我有 3 个长时间运行的任务,是否最好有一个 NSOperation 子类基本上做类似的事情

Single NSOperation subclass
- (void)main {
// do long running task 1
// do long running task 2
// do long running task 3

// call back the delegate
}

或者让每个任务成为 NSOperation 的子类,然后将我的 ViewController 中的每个任务作为一个工作单元来管理会更好吗?提前致谢。

最佳答案

这取决于操作队列是串行的(即max concurrent operations 1)还是并行的,以及工作的性质。如果队列是串行的,那么它真的没关系。如果队列是并行的,那么它取决于一堆因素:

  • 同时进行的工作是否安全
  • 工作是否在会消除并发性的共享资源(例如网络或磁盘 IO,或锁)上争用
  • 每个工作单元是否足够大以值得单独调度的开销

(编辑)

此外,如果您不需要 NSOperationQueue 的高级功能(操作依赖性和优先级、KVO 等...),请考虑使用调度队列。它们的重量要轻得多。

关于ios - NSOperation 层次结构,工作单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com