§1 FutureListener 机制
Netty 的接口调用是 异步 的
关于 Netty 的异步,笔者认为其实是有异议的,详情参考 并发编程 | Netty - [taskQueue & scheduledTaskQueue]
FutureListener 机制
- 调用方不会直接获得结果,但也不会阻塞,而是立即返回一个
ChannelFuture
- 可以在
ChannelFuture
上通过addListener()
添加监听器 - 添加的监听器会在
ChannelFuture
完成后触发 (isDone()==true
) - 通过 FutureListener 可以将操作转为异步调用,并根据不同结果进行回调处理
§2 常用方法
是否完成
isDone()
是否成功
isSuccess()
是否取消
isCancelled()
获取异常
getCouse()
注册监听器
addListener()
相当于增加回调
增加的监听器会在完成后被触发
§3 示例
f 即 ChannelFuture
,可以
future.addListener(f->{
if(future.isSuccess())
// do sth.
else
// do sth.
});