河北邢台做网站,做商城网站要请程序员吗,注册网站免费注册,app企业签名目录
1.作用
2.Java中Future模式的实现
3.Future接口的主要实现类
1.FutureTask
2.CompletableFuture 1.作用 在执行耗时较长任务的场景下#xff0c;通过Future模式能够进行异步调用#xff1a;即将该耗时任务通过子线程异步执行#xff0c;而主程序执行其他任务…目录
1.作用
2.Java中Future模式的实现
3.Future接口的主要实现类
1.FutureTask
2.CompletableFuture 1.作用 在执行耗时较长任务的场景下通过Future模式能够进行异步调用即将该耗时任务通过子线程异步执行而主程序执行其他任务当子线程执行完成通过Future模式获取该耗时任务的执行结果提高执行效率 2.Java中Future模式的实现 定义了一个Future接口
public interface FutureV {/***尝试取消执行此任务*/boolean cancel(boolean mayInterruptIfRunning);/*** 如果此任务在正常完成之前被取消则返回true*/boolean isCancelled();/*** 如果此任务已完成则返回true*/boolean isDone();/*** 如果需要等待计算完成然后检索其结果*/V get() throws InterruptedException, ExecutionException;/***如果需要最多等待给定的时间以完成计算然后检索其结果如果可用*/V get(long timeout, TimeUnit unit)throws InterruptedException, ExecutionException, TimeoutException;
}
该接口的功能总结 获取Future执行任务后的执行结果 取消Future执行的任务 查看Future执行任务的状态任务是否执行完毕 3.Future接口的主要实现类
1.FutureTask
是Future接口的基本实现类实现了接口功能的三个方法 取消任务 public boolean cancel(boolean mayInterruptIfRunning) {if (!(state NEW UNSAFE.compareAndSwapInt(this, stateOffset, NEW,mayInterruptIfRunning ? INTERRUPTING : CANCELLED)))return false;try { // in case call to interrupt throws exceptionif (mayInterruptIfRunning) {try {Thread t runner;if (t ! null)t.interrupt();} finally { // final stateUNSAFE.putOrderedInt(this, stateOffset, INTERRUPTED);}}} finally {finishCompletion();}return true;} 查看任务执行状态实现了Runable接口从而能够将任务直接执行 获取任务执行结果构造器中传入了Callable接口对象能够存储call()方法的执行结果并返回 2.CompletableFuture
定义实现了Future和CompletionStage接口
public class CompletableFutureT implements FutureT, CompletionStageT {
}
作用jdk1.8后引入的实现类能够将多个异步任务串联形成复合调用CompletionStage使得CompletableFuture能够将多个异步任务组合构形成异步调用