0

スレッドのインターリーブの可能性について質問がありますが、ここで間違っている可能性があります。私はこのコードスニペットを

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 機能を使用することになっていますか?

ありがとう。

4

0 に答える 0