【发布时间】:2020-10-09 09:08:59
【问题描述】:
以下代码有时会在ret.forEach(v -> System.out.println(v)); 行生成 NullPointerException 异常。
我想我必须使用同步块或锁定接口来避免这个错误。
这是正确的吗?
请告诉我一些建议。
List<Integer> ret = new ArrayList<>();
IntStream.range(0, 10).parallel().forEach(i -> {
if (i % 2 == 0) {
try {
System.out.println("stop" + i);
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ret.add(i);
});
ret.forEach(v -> System.out.println(v));
【问题讨论】:
-
您在
IntStream中使用后定义ret。是不是打错字了? -
对不起,我修改将 List
ret 放在第一行,
标签: java parallel-processing synchronized