Netty-简单线程交错与否

Netty-简单线程交错与否,netty,Netty,我有一个关于可能的线程交错的问题,但我可能在这里错了。我称之为代码片段 从 handleUpstream(ChannelHandlerContext ctx,ChannelEvent事件) private AtomicInteger metrics=new AtomicInteger(); if(metrics.getAndSet(metrics.get()+1)

我有一个关于可能的线程交错的问题,但我可能在这里错了。我称之为代码片段 从

handleUpstream(ChannelHandlerContext ctx,ChannelEvent事件)

private AtomicInteger metrics=new AtomicInteger();
if(metrics.getAndSet(metrics.get()+1)<3){
mc.writeInt(可读字节);
System.out.format(“字节[%d]”,readableBytes);
mc.writeLong(延迟);
系统输出格式(“延迟[%d]%n”,延迟);
}
看起来有时候文字会变得杂乱无章。当我回读时,它们是错误的,而且打印的语句也有问题。这些方法正在写入NIO直接缓冲区

我应该在这里使用一些java.util.concurrency特性来执行命令吗


谢谢。

handleUpstream()
方法必须从同一线程调用。如果这不是您看到的,请使用指定的可复制步骤提交票据。ChannelFuture=bootstrap.connect(..)我同时多次连接到服务器。我想你的意思是这不重要。
    private AtomicInteger metrics = new AtomicInteger();

    if ( metrics.getAndSet( metrics.get() + 1 ) < 3 ){
        mc.writeInt( readableBytes );
        System.out.format( "Bytes [%d] ", readableBytes );
        mc.writeLong( latency );
        System.out.format( "Latency [%d]%n ", latency );
    }