Netty - 简单的线程交错与否

时间:2012-06-14 07:08:43

标签: netty

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

handleUpstream(ChannelHandlerContext ctx,ChannelEvent事件)

    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 );
    }

看起来有时写入会混乱。当我回读时,他们错了,打印报表也不正常。这些方法正在写入NIO直接缓冲区。

我是否应该在此处使用一些java.util.concurrency功能来强制执行订单?

感谢。

0 个答案:

没有答案