java - netty中的ReferenceCountUtil.release()方法具体作用是什么?
迷茫
迷茫 2017-04-17 17:47:56
0
2
1113

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
Peter_Zhu

ReferenceCountUtil.release()其實是ByteBuf.release()方法(從ReferenceCounted介面繼承而來)的包裝。 netty4中的ByteBuf使用了引用計數(netty4實現了一個可選的ByteBuf池),每一個新分配的ByteBuf的引用計數值為1,每對這個ByteBuf物件增加一個引用,需要呼叫ByteBuf.retain()方法,而每減少一個引用,就需要呼叫ByteBuf.release()方法。當這個ByteBuf物件的參考計數值為0時,表示此物件可回收。我這只是用ByteBuf說明,還有其他物件實作了ReferenceCounted接口,此時同理。

PHPzhong

從InBound讀取的ByteBuf要手動釋放,還有自己創建的ByteBuf要自己負責釋放。這兩處要呼叫這個release方法。
write Bytebuf到OutBound時由netty負責釋放,不需要手動調用release

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板