Как читать только внутренние сегменты файла, используя NIO

Мой пакетный процесс должен читать строки из огромных файлов (1-3G), каждый из которых может обрабатываться независимо от другого. Файлы могут иметь 10-50 миллионов строк. Я думал о создании около дюжины потоков, каждый из которых будет обрабатывать заранее определенный диапазон буферов, например, T1 будет считывать диапазон 0-1, T2 1-2 и т. Д. Одновременно. Это, конечно, означает, что T2 должен немедленно перейти в позицию буфера 2, не читая 0-2.

Возможен ли этот тип сегментации чтения буферизованных файлов в целях параллелизма с Java NIO?

1 ответ

Там нет никакого смысла в этом. Процессор может разрешить несколько потоков, но диск все еще однопоточный. Все, что это будет делать, это вызвать перегрузку диска. Забудь это.

Другие вопросы по тегам