ios - 使用 NSOperation 和 NSOperationQueue 的好习惯是什么?

标签 ios multithreading nsoperation nsoperationqueue

我刚刚开始使用 NSOperationNSOperationQueue。我真的很想知道使用它们应该有什么更好的做法。

我应该为整个应用程序创建一个队列,还是应该为每种特定类型的任务创建一个队列?如果我创建这么多队列会有什么影响?

最佳答案

这取决于您使用它们的目的。如果您使用它们是为了提高性能,最大限度地发挥 CPU 的性能,那么超出您期望的核心数量就没有什么意义。

如果您只是为了保持 UI 响应而卸载处理,但您并不特别关心最大化性能,那么为了简单起见,我将使用默认后台队列。

如果您使用顺序后台队列来触发对外部事件的操作(例如网络请求完成),那么使用一堆不会造成任何损害,因为它们不会导致大量线程尝试同时运行。

在很多情况下,您可以使用操作队列来简化设计。

NSOperationQueues 构建在 GCD 之上,据我所知,只要它们不尝试同时执行,队列负载就不会影响性能。

关于ios - 使用 NSOperation 和 NSOperationQueue 的好习惯是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626025/

相关文章:

ios - 由于获取核心数据对象时内存使用,应用程序卡住并终止

java - RxJava - 主要杀死可观察的线程

java - 在 Android 中的单独线程上使用循环器

java - 为 Swing 库强制使用 EDT 线程

ios - 取消 NSOperation 完成 block

ios - Swift 值在闭包中消失了

ios - IBAction 上的键值编码合规性错误

ios - 为什么 U+E006 (  ) 在 iOS 上显示为 T 恤?

cocoa - 如何将 NSProgressIndicator 绑定(bind)到 NSOperation 的属性?

ios - 强制停止 NSOperation 或 GCD?