跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[程序员] 请教一个 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 的逻辑,有大佬给点排查思路吗

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

×
×
  • 创建新的...