前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >并发编程系列之Future类的主要功能介绍

并发编程系列之Future类的主要功能介绍

作者头像
SmileNicky
发布2021-09-08 15:04:51
2980
发布2021-09-08 15:04:51
举报
文章被收录于专栏:Nicky's blog

并发编程系列之Future类的主要功能介绍

1、什么是Future类?

Future类:future类的是一种异步任务监视器,可以让提交者可以监视任务的执行,同时可以取消任务的执行,也可以获取任务返回结果

2、Future类的作用

比如在做一定的任务运算的时候,需要等待比较长时间,这个任务是比较耗时的,需要比较繁重的运算,比如加密、压缩等等。如果一直在等程序执行完成是不明智的,这时可以将这个比较耗时的任务交给子线程执行,然后通过Future类监控线程执行,获取返回的结果。这样一来就提高了工作效率,这是一种异步的思想。

3、Future方法和用法

通过idea看一下Future类的类学习,可以看到这个类只有5个方法,基于jdk1.8:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
public interface Future<V> {

    boolean cancel(boolean mayInterruptIfRunning);
    
    boolean isCancelled();
    
    boolean isDone();

    V get() throws InterruptedException, ExecutionException;

    V get(long timeout, TimeUnit unit)
        throws InterruptedException, ExecutionException, TimeoutExceptio
}
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
package com.example.concurrent.future;

import java.util.Random;
import java.util.concurrent.*;

/**
 * <pre>
 *      Future例子
 * </pre>
 * <p>
 * <pre>
 * @author nicky.ma
 * 修改记录
 *    修改后版本:     修改人:  修改日期: 2021/08/28 17:11  修改内容:
 * </pre>
 */
public class FutureExample {

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService service = new ThreadPoolExecutor(10, 10,
                60L, TimeUnit.SECONDS,
                new ArrayBlockingQueue(10));

        Future<Integer> future = service.submit(new CallableTask());
        System.out.println(future.get());

        service.shutdown();
    }

    static class CallableTask implements Callable<Integer> {
        @Override
        public Integer call() throws Exception{
            Thread.sleep(1000L);
            return new Random().nextInt();
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/09/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是Future类?
  • 2、Future类的作用
  • 3、Future方法和用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档