1、Future(JUC )
Future是java 1.5引入的一个interface,可以方便的用于异步结果的获取,它代表异步调用的结果,使用它我们可以在进行异步调用后 去做其他的事情。
应用场景:1. 耗时的操作,2. 远程方法调用。
方法 | 描述 |
---|---|
isDone() | 判断异步请求是否完成 |
get() | 获取异步结果 |
get(long timeout, TimeUnit unit) | 获取异步结果 如果没有完成一直阻塞,同时也提供了设置超时时间的等待 |
cancel(boolean mayInterruptIfRunning) | 异步请求取消 传入一个boolean参数,来选择是否中断正在运行的task |
isCancelled() | 查看请求是否取消 |
@Test
public void testFuture() throws Exception{
ExecutorService executors = new ThreadPoolExecutor(1,1,
100,TimeUnit.MILLISECONDS,
new SynchronousQueue());
//获取异步结果
Future<Integer> future = executors.submit(new CalculateTask(10)