转载

Netty源码03-Netty整体框架

Netty整体框架

前面两篇文章对Java NIO进行了详细的介绍和分析,也给下面分析Netty源码打下一定的基础

Java已经有了一个原生的NIO框架,为什么还会出现Netty呢,这个原因主要有两个:

  • Java的NIO还不够高效,其底层使用 selector ,而Netty使用Linux下最高效的I/O模式 epoll
  • Selector多路复用的开发模式较为复杂,需要在程序中自己 轮询 ,而且SelectionKey需要自己进行删除的管理,比较容易出错,而且由很多阻塞操作( select ),Java自带的AIO更加难用。Netty是全异步操作,并且将底层IO操作全部封装,简化开发
  • Java的NIO内存管理采用 ByteBufferByteBuffer 是出了名的难用,在使用的时候要是忘记 flip() 很容易出错。Netty提供的 ByteBuf 就好用了很多,其采用 读写双Index ,更加易用
原文  https://segmentfault.com/a/1190000022098173
正文到此结束
Loading...