当前位置: 首页 > 知识库问答 >
问题:

Netty-我可以将那些ChannelHandlerContext缓存在哈希映射中并稍后响应吗?

孟光耀
2023-03-14

以下是实施步骤和问题:

>

因为还有其他正在运行的线程来处理用户数据,所以我们需要将此请求放到队列中,让工作线程处理

工人处理完数据后,我们能在工人线程中响应回客户端吗?也就是说,要么使用HashMap缓存ChannelHandlerContext,然后从工作线程到响应获取它?

谢谢大家

共有1个答案

谷梁英毅
2023-03-14

是的,你可以。由ChannelHandlerContext提供的操作都是线程安全的,因此您可以保留上下文实例供以后使用,并从其他线程中使用。

一个ChannelHandlerContext与它所属的Channel具有相同的生命周期。当Channel关闭时,ChannelHandlerContext也会从管道中取消引用。如果保留对ChannelHandlerContext的引用,则应取消引用它,或者确保垃圾回收器可以回收它。

 类似资料:
  • 调用clear方法时,内存似乎减少了。然而,从其他答案来看,似乎< code>clear方法从未收缩过< code>HashMap。那么为什么内存会减少呢?

  • 如果缓存通道[]而不是缓存ChannelHandlerContext,会有什么不同吗? 以下是实现的步骤和问题: > Netty服务器处理程序从客户端接收消息 因为有其他正在运行的线程来处理用户数据,所以我们需要将此请求放到队列中,并让辅助处理 服务器和客户端之间的多消息交换需要使用相同的连接 每当消息准备好从辅助线程发送到客户端时,最好使用缓存在HashMap中的通道 final Channel

  • 我正在评估Netty作为我们内部开发的网络堆栈的替代品和/或替代品。整体设计非常相似,除了一个问题外,很容易更换。 在我们的服务器进程中,我们有时需要直接访问SocketChannel,以便使用通道将数据发送到客户端。transferTo()我看不到访问Netty中SocketChannel的方法。例如,ChannelHandlerContext接口中没有任何内容。 我将开始挖掘源代码,但是有人知

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C

  • 我需要从我的Android向Algolia发送数据,发送的数据应该是JSONObject格式(导入org.json.JSONObject) Algolia中的数据应采用此格式 所以在Android中,我这样设置代码 在这行代码中 那么我应该怎么做才能以JSONObject格式发送hashmap数据呢?

  • 前缀映射,后缀映射和缓存映射 通过 names.NewPrefixMapper(names.SnakeMapper{}, "prefix") 可以创建一个在 SnakeMapper 的基础上在命名中添加统一的前缀,当然也可以把 SnakeMapper{} 换成 SameMapper 或者你自定义的 Mapper。 例如,如果希望所有的表名都在结构体自动命名的基础上加一个前缀而字段名不加前缀,则可以