Ответ зависит в некоторой степени от того, насколько интенсивна загрузка процессора для каждого файла.
В одном крайнем случае, когда время обработки преобладает над временем I / O , выгода, которую дает многопоточность, заключается просто в возможности использовать преимущества нескольких ядер (и, возможно, гиперпоточности), чтобы использовать максимум доступная вычислительная мощность вашего процессора. В этом случае вам нужно стремиться к количеству рабочих потоков, примерно равному количеству логических ядер в системе.
В другом крайнем случае, когда ввод-вывод является вашим узким местом, вы не увидите особой пользы от нескольких потоков, поскольку они будут проводить большую часть своего времени в спящем режиме, ожидая завершения ввода-вывода. В этом случае вы захотите сосредоточиться на максимизации пропускной способности ввода-вывода, а не на загрузке процессора. На одном нефрагментированном жестком диске или DVD, где вы были связаны с вводом / выводом, наличие нескольких потоков может снизить производительность, поскольку вы получите максимальную пропускную способность ввода / вывода при последовательном чтении в одном потоке. Если диск фрагментирован или у вас есть RAID-массив или аналогичный, то одновременное выполнение нескольких запросов ввода-вывода может повысить пропускную способность ввода-вывода, поскольку контроллер может интеллектуально переставить их для более эффективного чтения.
Я думаю, что было бы полезно рассматривать это как две отдельные проблемы. Один из них - как получить максимальную пропускную способность ввода-вывода для операций чтения файлов, другой - как максимально использовать ваш ЦП для обработки файлов. Вероятно, вы бы получили оптимальную пропускную способность, если бы небольшое количество потоков ввода-вывода запускало запросы ввода-вывода и пул рабочих потоков, примерно равный числу логических ядер ЦП, обрабатывающих данные по мере их поступления. Стоит ли усилий для реализации более сложной установки, подобной этой, зависит от того, где узкие места в вашей конкретной проблеме.