1
我試圖弄清楚何時在Netty中使用Unpooled。一些例子顯示包裹在Unpooled.wrappedBuffer
字節[],以及一些例子表明只是何時使用netty中的Unpooled
ctx.writeAndFlush(bytes); // where bytes is just byte[]
是否有關於何時使用UNPOOLED的準則?
我試圖弄清楚何時在Netty中使用Unpooled。一些例子顯示包裹在Unpooled.wrappedBuffer
字節[],以及一些例子表明只是何時使用netty中的Unpooled
ctx.writeAndFlush(bytes); // where bytes is just byte[]
是否有關於何時使用UNPOOLED的準則?
將byte[]
傳遞給Netty write
方法相當於傳遞未混合的ByteBuf
。我們可以在ByteArrayEncoder
的源代碼,這在內部調用Unpooled#wrappedBuffer(byte[])
看到這一點:
@Override
protected void encode(ChannelHandlerContext ctx, byte[] msg, List<Object> out) throws Exception {
out.add(Unpooled.wrappedBuffer(msg));
}
因此,通過byte[]
和傳遞ByteBuf
通過調用Unpooled#wrappedBuffer(byte[])
創建自己之間沒有根本的區別。後者可能更明確地提出使用unpooled緩衝區,以防在特定應用程序的情況下使用共用池與非池化池。
如果您需要關於池緩衝區的更多詳細信息,Netty「4.0中新增值得注意的」wiki頁面在Pooled buffers部分中有很好的介紹。