NSOperationQueue 和并发操作
Posted
技术标签:
【中文标题】NSOperationQueue 和并发操作【英文标题】:NSOperationQueue and concurrent operation 【发布时间】:2011-01-12 09:34:50 【问题描述】:正如NSOperationQueue
类参考所说:
在 ios 中,操作队列不使用Grand Central Dispatch
来执行操作。它们为非并发操作创建单独的线程,并从当前线程启动并发操作。
但我发现在 iOS 4.2.1 中,队列总是为并发或非并发操作创建线程。而且我认为队列根本不在乎并发或非并发,因为 isConcurrent 中的断点永远不会被打破。所以我认为参考是错误的......
【问题讨论】:
【参考方案1】:如果您查看 NSOperation 的文档,您应该会看到有关 Mac 10.6(大致对应于 iOS 4.0)忽略 isConcurrent 的注释。
基本上,创建并发 NSOperation 的唯一原因是您要手动触发它。
【讨论】:
【参考方案2】:NSOperationQueue
确实使用 GCD。来自the documentation:
在 iOS 4 及更高版本中,操作队列使用 Grand Central Dispatch 来执行操作。
【讨论】:
以上是关于NSOperationQueue 和并发操作的主要内容,如果未能解决你的问题,请参考以下文章
NSOperationNSOperationQueue(II)