发布时间:2022-02-24 文章分类:Java知识 投稿人:优优 字号: 默认 | | 超大 打印

743

说明

1、FutureTask类不仅实现了Future接口还实现了Runnable接口,表示一种可生成结果的Runnable。

2、FutureTask类实现了Future接口的开启和取消任务、查询任务是否完成、获取计算结果方法。

要获取FutureTask任务的结果,我们只能通过调用getXXX()系列方法才能获取,当结果还没出来时候这些方法会被阻塞,同时这了任务可以是Callable类型(有返回结果),也可以是Runnable类型(无返回结果)。

实例

privatestaticvoidtestFutureTask()throwsExecutionException,InterruptedException{
System.out.println("--------------------testFutureTask--------------------");

//创建一个FutureTask(doOneThing任务)
FutureTask<String>futureTask=newFutureTask<>(FutureTaskDemo::doOneThing);
//使用线程池执行doOneThing任务
ForkJoinPool.commonPool().execute(futureTask);

//执行doOtherThing任务
StringdoOtherThingResult=doOtherThing();

//同步等待线程执行doOneThing任务结束
StringdoOneThingResult=futureTask.get();

//任务执行结果输出
System.out.println("doOneThingResult---->>>"+doOneThingResult);
System.out.println("doOtherThingResult---->>>"+doOtherThingResult);

以上就是java异常编程FutureTask的介绍,希望对大家有所帮助。更多Java学习指路:Java基础