【发布时间】:2025-11-21 10:30:01
【问题描述】:
我有这段代码:
ArrayList<ArrayList<Double> results = new ArrayList<ArrayList<Double>();
IntStream.range(0, 100).parallel().forEach(x ->{
for (int y = 0; y <100;y++){
for (int z = 0; z <100;z++){
for (int q = 0; q <100;q++){
results.add(someMethodThatReturnsArrayListDouble);
}
}
}
});
System.out.println(results.size());
运行此代码后,我总是得到不同的results.size(),总是短一些。知道为什么会这样以及如何解决吗?
【问题讨论】:
-
ArrayList不是线程安全的。 -
您应该阅读the documentation...中有关副作用的部分...
标签: java parallel-processing java-stream