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