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

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

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...