[Ответ основан на комментариях]
Предположим, вы хотите обработать список String
, а также хотите сохранить ответ каждой обработки с вводом и выводом, тогда вы можете следовать приведенному ниже подходу.
List<String> lines = FileUtils.readLines(dataFile,"UTF-8");
Map<String, String> result = lines.parallelStream()
.collect(Collectors.toMap(line -> line, line -> processRecord(line, dataFileName)));
Здесь result
(простое Map<Key, Value>
) будет содержать как .. ключ в качестве каждой отдельной строки, так и значение в качестве каждого отдельного ответа строки THAT возвращается методом processRecord
.
сколько потоков будет параллельно выполнять этот метод (из комментариев)
Метод parallelStream()
использует форму потоков DefaultForkJoinPool
. И этот пул имеет размер по умолчанию, равный number of cores
в вашей системе.