Netty - 我可以在哈希映射中缓存那些 ChannelHandlerContext 并稍后响应吗?
Netty - can I cache those ChannelHandlerContext in Hash map and response it later?
下面是实现步骤和问题:
Netty 服务器处理程序从客户端接收消息
因为还有其他运行线程处理用户数据,我们需要把这个请求放到一个队列中,让worker处理
worker处理完数据后,是否可以在worker线程中响应给client?即使用 HashMap 来缓存 ChannelHandlerContext 并稍后从工作线程获取它以响应?
谢谢大家
是的,你可以。 ChannelHandlerContext
提供的操作都是线程安全的,因此您可以保留上下文实例以备后用,并在其他线程中使用。
一个ChannelHandlerContext
与其所属的Channel
具有相同的生命周期。当 Channel
关闭时,ChannelHandlerContext
也会从管道中取消引用。如果保留对 ChannelHandlerContext
的引用,则应取消引用它或确保垃圾收集器可以回收它。
下面是实现步骤和问题:
Netty 服务器处理程序从客户端接收消息
因为还有其他运行线程处理用户数据,我们需要把这个请求放到一个队列中,让worker处理
worker处理完数据后,是否可以在worker线程中响应给client?即使用 HashMap 来缓存 ChannelHandlerContext 并稍后从工作线程获取它以响应?
谢谢大家
是的,你可以。 ChannelHandlerContext
提供的操作都是线程安全的,因此您可以保留上下文实例以备后用,并在其他线程中使用。
一个ChannelHandlerContext
与其所属的Channel
具有相同的生命周期。当 Channel
关闭时,ChannelHandlerContext
也会从管道中取消引用。如果保留对 ChannelHandlerContext
的引用,则应取消引用它或确保垃圾收集器可以回收它。