我希望通过附件在Netty的大约20个通道之间共享一个对象。例如

SharedStatsObj sso ...
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
ChannelHandlerContext c = future.getChannel().getPipeline().getContext("handler")
c.setAttachment(sso);


该对象将保留统计信息,例如发送命令,连接多长时间,还将用于发信号通知各个通道以执行特定操作。有人对这个有经验么?除了在更新数据/访问数据时使用同步块之外,还有线程问题吗?任何建议将不胜感激!

最佳答案

如果要在通道之间共享对象,则将其直接注入ChannelHandler或使用静态ChannelLocal实例。

确保您的对象是线程安全的!

08-19 23:14