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