我一直在尝试阅读 GCD 并试图弄清楚。我读了很多地方,应该总是使用 GCD,如果一个人正在做一些繁重的工作,这会冻结 UI,我明白这一点,但 GCD 也可以仅用于性能考虑。假设我有一个需要运行 10 次的循环,每次迭代都需要大量数据。运行不同线程的一半迭代是否会提高性能,以便两个线程共享工作负载,还是仍然需要相同的时间来完成循环?
问问题
137 次
2 回答
2
这完全取决于您对循环逻辑的设计,您的问题没有正确答案,因为您仍然需要定义如何加入和合并您对此数据进行的 2 个不同处理,数据将在哪里已保存,您要解决的逻辑问题是什么
尽管如此,您尝试在两个线程中实现的目标可能会导致您过早优化,因此在开始优化代码之前,请考虑是否值得您将引入代码的复杂性
于 2012-06-13T23:21:02.443 回答
2
如果您的设备有两个处理器,这将有助于运行两个串行 gdc 队列。但是,这个想法是您不应该关心,调用dispatch_queue_create
并DISPATCH_QUEUE_CONCURRENT
让设备确定并行运行的最佳任务数量是多少。
于 2012-06-14T07:39:39.513 回答