第2章 netty介绍与相关基础知识

NIO有一个零拷贝的特性。Java的内存有分为堆和栈,以及还有字符串常量池等等。如果有一些数据需要从IO里面读取并且放到堆里面,中间其实会经过一些缓冲区。我们要去读,它会分成两个步骤,第一块它会把我们的数据从IO流里面读出来放到我们的缓冲区,然后从缓冲区里面再去读出来放到堆里面。其实它会经历两次,数据会拷贝两次才能到达堆或者堆内存里面。如果数据量很大,那么就会造成资源的浪费。Netty使用了NIO中的零拷贝特性,当它需要去接收数据或者传输数据的时候,那么它会去开辟一个新的堆内存,然后数据直接是从IO读到那块新的一个开辟的内存里面去了。

猜你喜欢

转载自www.cnblogs.com/ZHONGZHENHUA/p/9902028.html