以某种方式我的所有元素均未添加到列表中,这是我的代码:
List<Record> recordList = new ArrayList<>();
batchList.forEach(batch -> {
executor.submit(() -> {
recordList.add(csvToJson(batch));
});
});
log.info("recordList.size(): {}", recordList.size());
我的日志显示recordList.size(): 0
在csvToJson(batch)
函数返回之前,我还打印了最终结果,它是有效的合法非空对象。
executor
像这样初始化并传递到此方法中:
ExecutorService executor = Executors.newFixedThreadPool(10);
我的直觉是,我应该使用线程安全列表而不是ArrayList。