Future接口

Future:表示将要完成任务的结果。表示ExecutorService.submit()所返回的状态结果。也就是call()的返回值。

Future.get()方法,以阻塞的形式等待Future中的异步处理结果(call()的返回值)。


使用两个线程,并发计算1-50,51-100的和,在进行汇总统计。
public static void main(String[] args) throws ExecutionException, InterruptedException {
       //创建一个定长的线程池,定义线程个数为2
        ExecutorService executorService = Executors.newFixedThreadPool(2);

        //提交任务
        Future<Integer> future1 = executorService.submit(new Callable<Integer>() {
            @Override
            public Integer call() throws Exception {
                System.out.println("开始计算1-50的和...");
                int sum = 0;
                for (int i = 1; i <= 50; i++) {
                    sum += i;
                }
                System.out.println("1-50的和计算完毕:" + sum);
                return sum;
            }
        });
        Future<Integer> future2 = executorService.submit(new Callable<Integer>() {
            @Override
            public Integer call() throws Exception {
                System.out.println("开始计算51-100的和...");
                int sum = 0;
                for (int i = 51; i <= 100; i++) {
                    sum += i;
                }
                System.out.println("51-100的和计算完毕:" + sum);
                return sum;
            }
        });

        //获取结果
        System.out.println("结果汇总:" + (future1.get() + future2.get()));

        //关闭线程池
        executorService.shutdown();
    }

 

posted @ 2022-12-29 00:53  Amireux-126  阅读(24)  评论(0)    收藏  举报