我有一个模拟我的数据的功能。 如果参数"实体"包含子,它包含在子名称中。 A型和A型儿童有两种类型。 TYPE-B。 对于每种类型,函数都是递归调用的。 当孩子没有更多子名时,这个递归函数调用就会退出。
public void modelMyData(Entity entity) {
if (entity.getChildNames()[0] != null) {
Arrays.stream(entity.getChildNames())
.collect(Collectors.toList())
.parallelStream()
.forEach(childType -> {
entity.getChild(childType).parallelStream()
.forEach(child -> {
modelMyData(child);
});
;
});
}
System.out.println("INSERT " + entity.getChildAttributeValue());
}
该程序对我来说很好。但据说并行流的使用在java编程中是不好的。
访问http://zeroturnaround.com/rebellabs/java-parallel-streams-are-bad-for-your-health/
我应该使用流而不是并行流吗?
答案 0 :(得分:1)
你在溪流中进行长时间的操作吗?如果是,请使用parallelStream,否则,请不要使用parallelStream。你读过这篇文章吗?它指的是长时间运行期间的线程池耗尽。这是你的问题/程序的情况吗?
顺便说一句,只需执行Arrays.asList(entity.getChildNames()).parallelStream()....
,无需复制所有内容。