В настоящее время у меня есть сценарий оболочки, который обрабатывает множество изображений одно за другим с помощью GraphicsMagick. Работает нормально, все расчеты верны, все работает. (это не «простой» сценарий, он включает чтение измерений из файла JSON, преобразование группы изображений с учетом многих ограничений).
Поскольку мы работаем с двухъядерным или четырехъядерным компьютером, я бы хотел распараллелить его. И так как я являюсь разработчиком для iPhone и хочу познакомиться с разработкой для Mac, я бы хотел создать его с помощью XCode и Objective-C, используя шаблон «инструмента командной строки».
Пока все хорошо, но теперь я столкнулся с дизайном объекта "диспетчер задач". Я довольно потерян между выполнением NSTasks в цикле выполнения, в отдельных потоках, с использованием блоков, с GCD или без, с ARC или без.
Как можно этого достичь? Я думал об использовании простых потоков для порождения NSTasks, чтобы они сообщали, когда они закончили, и уведомляли делегата моего диспетчера, чтобы он мог обновить свой индикатор выполнения. Но мне бы очень хотелось связаться с Grand Central Dispatch. У кого-нибудь есть мысли, идеи, советы о том, что делать, а что нет?
Редактировать: я читаю документы Apple и обнаружил класс NSOperationQueue. Может быть, это точно , что мне здесь нужно?