CompletableFuture1--FutureTask架构及简单使用

一.Future简介

     在Java中如果提到异步任务,那么就一定会用到Future,它是Java中异步任务的接口,并在1.5版本就已出现.
      Future定义了一些操作异步任务执行的方法,如获取异步任务的执行结果,判断任务是否执行完毕等.
在这里插入图片描述
      简单来说就是我们可以通过Future将异步任务放到另一个线程中执行,并使用Future对返回结果进行接收.

二.Future及FutureTask来由

      假如我们现在有这样一个需要:要实现 有返回值的多线程的异步任务,我们应该用什么接口或者什么类?

  • 返回值–>Callable
    多线程–>Runnable
    异步任务–>Future

      所以我们需要有一个类或接口将这三方势力都关联起来,供我们去调用.
现在看一下Future接口的实现类,FutureTask
在这里插入图片描述
      它实现了两个接口,能够达到多线程和异步任务的目的,但是没有涉及到返回值,但是在Java中还提供了通过构造器传参数的一种方式,可以发现FutureTask的构造参数是需要传入一个Callable的.
在这里插入图片描述
这就达成了我们的目的,使用FutureTask就可以满足.

注:这里要说一下启动一个线程和异步任务的区别:
启动一个线程很简单,用runnable即可,异步任务是要满足Future异步任务的规范,比如说可以被取消,可以判断是否执行完毕等等.

三.Future简单使用

1.直接使用线程
在这里插入图片描述
2.利用线程池使用future进行接收.
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员bling

义父,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值