Следует ли мне использовать ThreadPools или параллельную библиотеку задач для операций, связанных с вводом-выводом

В одном из моих проектов, который является своего рода агрегатором, я анализирую каналы, подкасты и т. Д. Из Интернета.

] Если я использую последовательный подход, учитывая большое количество ресурсов, на их обработку уходит много времени (из-за проблем с сетью и тому подобного);

foreach(feed in feeds)
{
   read_from_web(feed)
   parse(feed)
}

Итак, я хочу реализовать параллелизм и не могу решить, следует ли мне в основном использовать ThreadPools для обработки с рабочими потоками или просто полагаться на TPL для его сортировки.

ThreadPools наверняка выполнит задание за меня с рабочими потоками и я получу то, что ожидаю (а в средах с многоядерными процессорами другие ядра также будут использоваться).

concurrency

Но я все еще хочу рассмотреть TPL, поскольку это рекомендуемый метод, но меня немного беспокоит Это. Прежде всего, я знаю, что TPL использует ThreadPools, но добавляет дополнительный уровень принятия решений. Меня больше всего беспокоит состояние, в котором присутствует одноядерная среда. Если я не ошибаюсь, TPL начинается с количества рабочих потоков, равного количеству доступных ядер процессора в самом начале. Я действительно опасаюсь, что TPL даст результаты, аналогичные последовательному подходу для моего случая с привязкой к вводу-выводу.

Итак, для операций с привязкой к вводу-выводу (в моем случае чтение ресурсов из Интернета) лучше всего использовать ThreadPools и контролировать вещи или лучше просто полагаться на TPL? Можно ли также использовать TPL в сценариях с привязкой к вводу-выводу?

Обновление : Меня больше всего беспокоит то, что - в среде с одноядерным ЦП TPL будет вести себя как последовательный подход или все равно предлагать параллелизм? Я уже читаю Параллельное программирование с Microsoft .NET и, следовательно, книгу , но не могу найти точного ответа на этот вопрос.

Примечание: это переформулировка слова мой предыдущий вопрос [ Возможно ли совместное использование параллелизма потоков и параллелизма? ], который был сформулирован совершенно неправильно.

76
задан Community 23 May 2017 в 12:10
поделиться