Рассмотрим простое приложение Java, которое должно перемещаться по дереву файлов на диске, чтобы найти определенный шаблон в теле файла.
Интересно, можно ли добиться лучшей производительности, используя многопоточность, например, когда мы находим новую папку, мы отправляем новый Runnable в фиксированный пул потоков. Выполняемая задача должна перемещаться по папке, чтобы найти новые папки и т. Д. На мой взгляд, эта операция должна быть связана с вводом-выводом, а не с ЦП, поэтому создание нового потока не улучшит производительность.
Это зависит от типа жесткого диска? (жесткий диск, ... и т. д.) Это зависит от типа ОС?
ИМХО, единственное, что может быть параллельно, - это создать новый поток для анализа содержимого файла, чтобы найти шаблон в теле файла.
Каков общий шаблон для решения этой проблемы? Должен ли он быть многопоточным или однопоточным?