簡體   English   中英

當NIO是單線程時,為什么Netty使用引用計數而不是每個連接只有一個ByteBuffer?

[英]Why Netty uses reference counting instead of just one ByteBuffer per connection when NIO is single-threaded?

我很困惑為什么Netty 5.0會讓你使用ByteBuffers的引用計數。 是不是Java NIO應該是單線程的,換句話說,一個選擇器線程用於許多連接? 每個客戶端都需要自己的ByteBuffer ,就是這樣,除非我遺漏了什么,否則不需要池化。

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
    ByteBuf m = (ByteBuf) msg; // (1)
    try {
        long currentTimeMillis = (m.readUnsignedInt() - 2208988800L) * 1000L;
        System.out.println(new Date(currentTimeMillis));
        ctx.close();
    } finally {
        m.release();
    }
}

資料來源: http//netty.io/wiki/user-guide-for-5.x.html

這是因為我們不知道人們將如何處理ByteBuf。 我們也支持從不同的線程等寫作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM