【发布时间】:2011-09-06 11:32:20
【问题描述】:
我目前有一个 shell 脚本,它在 GraphicsMagick 的帮助下一个接一个地处理许多图像。它工作正常,所有计算都是正确的,一切正常。 (这不是一个“简单”的脚本,它涉及从 JSON 文件读取尺寸,根据许多约束转换一堆图像)。
当我们使用双核或四核计算机时,我想将其并行化。由于我是一名 iPhone 开发人员,喜欢向自己介绍 Mac 开发,因此我想使用“命令行工具”模板使用 XCode 和 Objective-C 创建它。
到目前为止一切都很好,但现在我面临着“任务调度程序”对象的设计。在运行循环中运行 NSTask,在单独的线程中,使用块,有或没有 GCD,有或没有 ARC,我相当迷失。
如何实现这一目标?我正在考虑使用简单的线程来生成 NSTask,让它们在完成时报告,并通知我的调度员的委托,以便它可以升级其进度条。但我真的很想与 Grand Central Dispatch 取得联系。有没有人对做什么和不做什么有任何想法、想法和建议?
编辑:我正在阅读 Apple 的文档,并找到了 NSOperationQueue 类。难道这正是我需要的?
【问题讨论】:
标签: objective-c multithreading parallel-processing grand-central-dispatch nstask