Я хочу получить доступ к большому файлу (размер файла может варьироваться от 30 МБ до 1 ГБ) через 10 потоков, а затем обрабатывать каждую строку в файле и записывать их в другой файл через 10 потоков. Если я использую только один поток для доступа к IO, другие потоки блокируются. Обработка занимает некоторое время, почти эквивалентное чтению строки кода из файловой системы. Существует еще одно ограничение, данные в выходном файле должны быть в том же порядке, что и входной файл.
Я хочу, чтобы вы думали о дизайне этой системы. Существует ли какой-либо существующий API для поддержки одновременного доступа к файлам?
Также запись в один файл может привести к тупиковой ситуации.
Просьба предложить, как достичь этого, если я заинтересован в ограничении времени.