知识卡片
Netty监听IO完成
内容
Netty 的 Future/ChannelFuture 用 Listener(GenericFutureListener)表达 IO 完成事件:connect(...) 是异步的,仅提交任务立刻返回,真正完成后才回调 operationComplete()。这让发起线程不必阻塞等 IO——与 [[Guava增强Future]] 思路一致,只是接口形态不同。
参考来源
- 位置:《Java高并发核心编程.卷2,多线程、锁、JMM、JUC、高并发设计模式》第9章《高并发核心模式之异步回调模式》9.6.1节《GenericFutureListener接口详解》、9.6.3节《ChannelFuture的使用》(源文件:_epub-src/OEBPS/Text/chapter293.xhtml、chapter295.xhtml)
- 结论依据:原文说明“网络连接通道的输入、输出处理都是异步进行的,都会返回一个ChannelFuture接口的实例……connect是异步的,仅仅是提交异步任务……connect的异步任务真正执行完成后,future回调监听器会执行”,并给出GenericFutureListener的operationComplete()方法定义,因此推出本卡结论。
- 原始内容:在Netty网络编程中,网络连接通道的输入、输出处理都是异步进行的,都会返回一个ChannelFuture接口的实例……//connect是异步的,仅仅是提交异步任务……//connect的异步任务真正执行完成后,future回调监听器会执行。