検索

ホームページ  >  に質問  >  本文

java - netty中的ReferenceCountUtil.release()方法具体作用是什么?

在什么情况下使用这个函数?

迷茫迷茫2771日前1104

全員に返信(2)返信します

  • 天蓬老师

    天蓬老师2017-04-17 17:49:56

    ReferenceCountUtil.release() は、実際には ByteBuf.release() メソッドのラッパーです (ReferenceCounted インターフェイスから継承)。 netty4 の ByteBuf は参照カウントを使用します (netty4 はオプションの ByteBuf プールを実装します)。新しく割り当てられた各 ByteBuf の参照カウント値は 1 です。この ByteBuf オブジェクトに参照が追加されるたびに、ByteBuf.retain() メソッドを呼び出す必要があります。 、参照が削減されるたびに、ByteBuf.release() メソッドを呼び出す必要があります。この ByteBuf オブジェクトの参照カウント値が 0 の場合、このオブジェクトは再利用可能であることを意味します。これを説明するために ByteBuf を使用しているだけです。現時点では、ReferenceCounted インターフェイスを実装するオブジェクトが他にもあります。

    返事
    0
  • PHPz

    PHPz2017-04-17 17:49:56

    InBoundから読み込んだByteBufは手動で解放する必要があり、自分で作成したByteBufは自分で解放する必要があります。このリリース メソッドは、次の 2 つの場所で呼び出す必要があります。
    Bytebuf を OutBound に書き込む場合、netty がそれを解放する責任を負い、手動で release を呼び出す必要はありません

    返事
    0
  • キャンセル返事