FutureTask

FutureTask是一项可取消的异步计算。该类提供了Future类的实现,主要方法包括:开始和取消一项计算,查询计算是否完成,获取计算结果。如果计算未完成,get()方法会阻塞。一旦计算结束,该计算不会被重启或取消。

FutureTask包裹了一个Callable对象。由于FutureTask实现了Runnable,一个FutureTask对象可以被提交给一个Executor对象执行。

除了作为一个单独类提供服务之外,该类提供了protected方法,这些方法可能在生成定制的任务类的时候有用。

内部定义了一个Sync类和一个Sync类的实例,sync。(在构造函数中实例化)来实现FutureTask的同步控制。

 

一般FutureTask多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。

这个特点需要注意,这是它和普通java方法的区别之处,普通java方法会阻塞java主线程。而它可以继续干别的活,干完后,可以获取结果。如果仍未完成,主线程将阻塞直到结果取到为止。当然我们可以根据业务情况,通过轮巡查看计算的状态决定主线程的下一步操作。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值