线程池执行Future的值为什么是null?

// 封装查询数据结果集
        List<Map<String, Object>> result = new ArrayList<>();
        try {
            // 启动所有线程任务Future获取结果
            List<Future<List>> futures = executorService.invokeAll(tasks);
            if (futures != null && futures.size() > 0) {
                // 迭代结果
                for (Future<List> future : futures) {
                    result.addAll(future.get());
                }
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        } finally {
            corePoolSize = 20;
            // 关闭线程池
            executorService.shutdown();
            while (true){
                if (executorService.isTerminated()){
                    log.info("任务已完成");
                    break;
                }
            }
        }
        return result;

如:100个线程执行后,其中一个future为null,但是线程任务确实执行了

img

FutureTask里把异常抛出来看看