Java 使用具有多个并行流的fork-join池的有效方法

Java 使用具有多个并行流的fork-join池的有效方法,java,java-8,java-stream,Java,Java 8,Java Stream,我使用三个需要调用http请求的流。所有呼叫都是独立的。因此,我使用并行流并从http响应收集结果 目前,我正在为这些操作使用三个独立的并行流 Map<String, ClassA> list1 = listOfClassX.stream().parallel() .map(item -> { ClassA instanceA = httpGetCall(item.id); return instanceA;

我使用三个需要调用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);
Map list1=listOfClassX.stream().parallel()
.地图(项目->{
ClassA instanceA=httpGetCall(item.id);
返回instanceA;
})
.collect(Collectors.toConcurrentMap(item->item.id,item->item);
Map list1=listOfClassY.stream().parallel()
.地图(项目->{
ClassB instanceB=httpGetCall(item.id);
返回实例b;
})
.collect(Collectors.toConcurrentMap(item->item.id,item->item);
Map list1=listOfClassZ.stream().parallel()的列表
.地图(项目->{
ClassC instanceC=httpGetCall(item.id);
返回实例;
})
.collect(Collectors.toConcurrentMap(item->item.id,item->item);
虽然每个调用都是独立的,但它一个接一个地分别运行三个并行流

在这种情况下,公共fork-join池是否有助于优化线程池的使用


还有其他方法可以进一步优化此代码的性能吗?

我认为您可以使用
CompletableFuture.allOf()
在这种情况下。尤其是每个调用都是独立的。这将对您有所帮助。流针对CPU限制的任务进行了优化,因此即使是单个并行流也可能不适合I/O限制的任务。请使用配置为所需并发级别的
ExecutorService
。如果可行,您可以将其与
CompletableFuture
结合使用e、 我认为您可以使用
CompletableFuture.allOf()
在这种情况下。尤其是每个调用都是独立的。这将对您有所帮助。流针对CPU限制的任务进行了优化,因此即使是单个并行流也可能不适合I/O限制的任务。请使用配置为所需并发级别的
ExecutorService
。如果可行,您可以将其与
CompletableFuture
结合使用E