Я использую три потока, которые должны вызывать HTTP-запросы.Все звонки являются независимыми.Итак, я использую параллельные потоки и собираю результаты из HTTP-ответа.
В настоящее время я использую три отдельных параллельных потока для этих операций.
Map<String, ClassA> list1 = listOfClassX.stream().parallel()
.map(item -> {
ClassA instanceA = httpGetCall(item.id);
return instanceA;
})
.collect(Collectors.toConcurrentMap(item -> item.id, item -> item);
Map<String, ClassB> list1 = listOfClassY.stream().parallel()
.map(item -> {
ClassB instanceB = httpGetCall(item.id);
return instanceB;
})
.collect(Collectors.toConcurrentMap(item -> item.id, item -> item);
Map<String, ClassC> list1 = listOfClassZ.stream().parallel()
.map(item -> {
ClassC instanceC = httpGetCall(item.id);
return instanceC;
})
.collect(Collectors.toConcurrentMap(item -> item.id, item -> item);
Он запускает три параллельных потока отдельно один за другимдругой, хотя каждый звонок независим.
Поможет ли в этом случае общий пул соединений с вилками оптимизировать использование пула потоков здесь?
Есть ли какой-либо другой способ дальнейшей оптимизации производительности этого кода?