我有一个带有parallelStream()
的测试代码,该代码将请求发送到服务器计算机。
Report report =
requestsList.parallelStream()
.map(request -> freshResultsGenerator.getResponse(request, e2EResultLongBL))
.map(response -> resultsComparer.compareToBl(response, e2EResultLongBL,
astarHistogramsArrayBl, latencyHistogramBl))
.reduce(null,
(sumReport, compare2) ->
{
if (sumReport == null) {
sumReport = new Report();
}
sumReport.add(compare2);
return sumReport;
},
(report1, report2) ->
{
Report report3 = new Report();
report3.add(report1);
report3.add(report2);
return report3;
});
这台计算机的负载太大,很快就会返回HTTP 404错误。
我没有在Google上找到答案的两件事:
放?
最佳答案
Stream API使用 ForkJoinPool
执行并发任务。引用其文档:
还
因此,要自定义线程数,可以将系统属性java.util.concurrent.ForkJoinPool.common.parallelism
设置为所需的值:
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "4")
将工作线程数设置为4。默认情况下,线程数将等于您拥有的处理器数。