Asynchronous 处理netty异步写入和关闭
我负责维护和改进一个已经开发好的SMTP代理大约一个月了 在研究该应用程序的其他方面时,我发现下面的链接指出通道写入不是同步的,后续关闭必须使用侦听器完成 问题:Asynchronous 处理netty异步写入和关闭,asynchronous,netty,channel,Asynchronous,Netty,Channel,我负责维护和改进一个已经开发好的SMTP代理大约一个月了 在研究该应用程序的其他方面时,我发现下面的链接指出通道写入不是同步的,后续关闭必须使用侦听器完成 问题: 这对Netty API的3.6.3版(最终版)有效吗 考虑到这是有效的,存储通道“写入”操作返回的ChannelFuture以供将来使用是否有任何问题 问题“2”的原因是: 我已经对应用程序的代码进行了初步分析,有很多地方有写操作、关闭操作和后续关闭操作(一个命令接一个命令) 考虑到Netty这方面的异步性质,我可以意识到,处理所有
ChannelFuture
以供将来使用是否有任何问题ChannelFuture
,以便我可以使用它们来安排关闭操作
基本上,我会用方法“write”和“close”创建一个助手,并持有一个映射。每次调用write时,我都会在这个映射上添加一条新记录,其中包括频道本身和频道“write”操作返回的ChannelFuture
当调用“close”helper方法时,我首先尝试在这个映射上查找通道。如果找不到,则没有挂起的写入操作,因此我可以立即关闭通道。否则,我有一个挂起的写操作,所以我使用存储的ChannelFuture
注册一个侦听器来安排频道的关闭