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并增加了以下方法: