Используете один общий фоновый поток для обработки данных iOS?

У меня есть приложение, в котором я загружаю несколько ресурсов из сети и выполняю некоторую обработку для каждого из них. Я не хочу, чтобы эта работа выполнялась в основном потоке, но она довольно легкая и низкоприоритетная, поэтому все это действительно может происходить в одном и том же общем рабочем потоке. Похоже, что это было бы хорошо, потому что работа, необходимая для настройки и разрыва всех этих рабочих потоков (ни один из которых не будет жить очень долго и т. Д.).

Удивительно, но, похоже, не существует простого способа выполнить всю эту работу в едином общем потоке, вместо того, чтобы создавать новый поток для каждой задачи. Это осложняется большим количеством путей к достижению параллелизма, которые, кажется, возникли с годами. (Явные NSThreads , NSOperationQueue , GCD и т. Д.)

Переоцениваю ли я накладные расходы, связанные с порождением всех этих потоков? Должен ли я просто не переживать и использовать более простые подходы «поток за задачей»? Используйте GCD и предположите, что он умнее меня в отношении (повторного) использования потоков?

5
задан Sixten Otto 17 November 2011 в 23:16
поделиться