Чтение и обработка CSV в многопоточном режиме

201
04 декабря 2017, 16:56

Я хочу считать CSV файл с большим количеством строк и обработать эти строки в многопоточном режиме. Делаю так:

@SpringBootApplication
public class CsvReaderApplication implements CommandLineRunner {
public static void main(String[] args) {
    SpringApplication.run(CsvReaderApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
    System.out.println(args[0]);
    String thisLine;
    int count = 0;
    BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
    ExecutorService pool = Executors.newFixedThreadPool(1000);
    while ((thisLine = bufferedReader.readLine()) != null ) {
        if (count > 150) count = 0;
        pool.submit(new MyTask(thisLine));
        count++;
    }
    pool.shutdown();
}
}
class MyTask implements  Runnable {
private String line;
private static int countLine = 0;
public MyTask(String line) {
    this.line = line;
}
@Override
public void run() {
    countLine ++;
    System.out.println("Line: " + line + " countLine: " + countLine);
//бизнес логика
}
}

В итоге получается так, что в методе run строки выводятся не в порядке, в котором они идут в файле, а в разнобой. Можно ли как-то обработать строки в том порядке, в котором они идут в исходном файле или вообще есть более эффективный способ?

READ ALSO
Java. Число сочетаний из N по М

Java. Число сочетаний из N по М

Есть задача: Нужно реализовать функцию, которая будет искать число сочетаний из N по M, только с определенными условиями: Функция должна возвращать...

281
Вывод текста в цикле else.Java

Вывод текста в цикле else.Java

При создании маленького консольного калькулятора

239
библиотека aFileChooser. Не могу открыть указанную директорию для выбора файла

библиотека aFileChooser. Не могу открыть указанную директорию для выбора файла

вот библиотекавнизу есть и документация к ней https://bintray

222
Serialization Java

Serialization Java

Всем привет Думал, что разобрался в сериализации, но наткнулся на непоняткуСоздаю LinkedList< User >

174