1. 程式人生 > >第2章 netty介紹與相關基礎知識

第2章 netty介紹與相關基礎知識

NIO有一個零拷貝的特性。Java的記憶體有分為堆和棧,以及還有字串常量池等等。如果有一些資料需要從IO裡面讀取並且放到堆裡面,中間其實會經過一些緩衝區。我們要去讀,它會分成兩個步驟,第一塊它會把我們的資料從IO流裡面讀出來放到我們的緩衝區,然後從緩衝區裡面再去讀出來放到堆裡面。其實它會經歷兩次,資料會拷貝兩次才能到達堆或者堆記憶體裡面。如果資料量很大,那麼就會造成資源的浪費。Netty使用了NIO中的零拷貝特性,當它需要去接收資料或者傳輸資料的時候,那麼它會去開闢一個新的堆記憶體,然後資料直接是從IO讀到那塊新的一個開闢的記憶體裡面去了。