代码逻辑如下:
```java
public void fun() {
List<Integer> list = new ArrayList<>();
for(int i = 1; i <= 12345; i++) {
list.add(i);
}
int total = list.size();
int batchSize = total / 3;
List<List<Integer>> partition = Lists.partition(list, batchSize);
for (List<Integer> itemList : partition) {
executorService.execute(() -> subFun(itemList));
}
}
private void subFun(List<Integer> list) {
String threadName = Thread.currentThread().getName();
log.info("子线程{}开始执行。。。", threadName);
for (Integer i : list) {
.....
}
log.info("子线程{}执行总数:{}", threadName, list.size());
}
```
总结就是将数据分为 3 块,并行执行,最终的日志结果是,子线程有 3 个开始执行了,却只有 2 个执行完,日志里没有异常信息,方法里也没有 return 的逻辑,有大佬给点排查思路吗 |
|