Future和Promise的关系

Netty内部的io.netty.util.concurrent.Future 继承自java.util.concurrent.Future,而Promise是前者的一个特殊实现。

Java原生Future

Java并发编程包下提供了Future接口。Future在异步编程中表示该异步操作的结果,通过Future的内部方法可以实现状态检查、取消执行、获取执行结果等操作。内部的方法如下:

// 尝试取消执行
boolean cancel(boolean mayInterruptIfRunning);
// 是否已经被取消执行
boolean isCancelled();
// 是否已经执行完毕
boolean isDone();
// 阻塞获取执行结果
V get() throws InterruptedException, ExecutionException;
// 阻塞获取执行结果或超时后返回
V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;

Netty对Future的扩展

原生的Future功能比较有限,Netty扩展了Future并增加了以下方法: