netty文档建议在ChannelHandlers中使用实例变量来跟踪通道状态。它没有提到你应该使用volatile变量或者使用任何其他同步技术来确保跨线程有一致的视图。在Netty ChannelHandler中保持状态
例如,使用在每个连接的基础这个处理程序:
class Handler extends SimpleChannelUpstreamHandler {
int count = 0;
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
++count;
}
}
我希望从一个网状线程池中的许多不同的线程将调用此方法,但不能同时使用,并有可能看到一个不一致的观点,导致计数不准确。
这是这种情况?或者netty内部是否有某种同步进行,这会导致写入计数字段的内容被刷新?
谢谢!这就是我所寻找的,“Netty保证给定的管道实例始终从同一个工作线程回调” –