Future、Promise

继承关系

1、Netty 中的 Future 与 JDK 中的 Future 同名,但是为两个接口

java.util.concurrent.Future<V>
io.netty.util.concurrent.Future<V>

2、Netty 的 Future 继承自 JDK 的 Future,而 Promise 对 Netty Future 进行扩展

public interface Promise<V> extends io.netty.util.concurrent.Future<V>
public interface io.netty.util.concurrent.Future<V> extends java.util.concurrent.Future<V>
public interface java.util.concurrent.Future<V>

 

功能区别

1、JDK Future 只能同步等待任务结束(成功 / 失败),才能得到结果

2、Netty Future 可以同步等待任务结束得到结果,也可以异步方式得到结果,但都要等待任务结束

3、Netty Promise 不仅有 Netty Future 功能,而且脱离任务独立存在,只作为两个线程间传递结果的容器

功能/名称 JDK Future Netty Future Promise
cancel 取消任务 - -
isCanceled 任务是否再正常完成前被取消 - -
isDone 任务是否完成,不能区分成功失败 - -
get 阻塞等待,直到获取任务结果,如果任务失败,抛出异常 - -
getNow - 获取任务结果,非阻塞,还未产生结果时返回  null -
await - 等待任务结束,如果任务失败,不会抛异常,手动调用 isSuccess 进行判断 -
sync - 等待任务结束,不获取任务结果,如果任务失败,抛出异常 -
isSuccess - 判断任务是否成功 -
cause - 获取失败信息,非阻塞,如果没有失败,返回null -
addLinstener - 添加回调,异步接收结果 -
setSuccess - - 设置成功结果
setFailure - - 设置失败结果
posted @   半条咸鱼  阅读(28)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示