ChannelInboundHandlerAdapter直接操做byte數組。
ChannelInboundHandlerAdapter 好像一無可取,畢竟他要本身處理資源的釋放java
buf.release();
若是channelRead都是同步操做,SimpleChannelInboundHandler是不錯的選擇,若是操做是異步的話,那他的邏輯就有點麻煩了,例如你把數據交給另外的線程處理了,還沒處理就會釋放了 。這裏必須說明一個問題,他的回收和jvm的垃圾回收還不徹底是一回事。netty是本身作了引用計數的操做。api
buf.refCnt();
經過上面的api就能夠獲取到計數的個數。ChannelInboundHandlerAdapter 處理自由的優勢也就提現出來了,能夠更好的處理更多的特定場景。數組
因此ChannelInboundHandlerAdapter 的好處則是更自由,在異步的場景下更適合。markdown
2 SimpleChannelInboundHandler那麼源碼中可見若是對於不接受的消息類型,else分支也會釋放內存嗎?讓咱們直接看 tailContext 便可。異步