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