NIO框架Netty学习路线及视频分享
什么是NIO
NIO,即New IO。那么老的IO是什么,例如我们用FileInputStream和FileOutputStearn读写文件就是IO。
NIO和IO区别
- IO当一个线程调用read() 或 write()时,该线程被阻塞,直到有数据读取,NIO没有数据可用时,就什么都不会获取,而不是保持线程阻塞,这样就能进行I/O多路复用,提高性能。
- IO是面向流的,NIO是面向缓冲区
- NIO可以允许单独线程来监视多个输入通道,当通道有数据可处理时去选择
为什么选择Netty
在java的标准类库中,在java.nio包下提供了nio的实现方法,但是偏向于底层开发,让开发者使用起来难度较大,而且里面的一些功能无法满足灵活的需求。
Netty作为一个框架,不仅提供了简单的API,降低了开发门槛,而且其提供了更为灵活的内存管理和众多的编码器和解码器,能更好的管理分配内存和解决粘包、拆包问题。
Netty的学习路线
- I/O基础及I/O模型
- NIO三大组件
- Netty内存管理
- Netty内存池原理及底层
- Netty的内存分配和粘包、拆包
- Netty的服务端和客户端构建
- Netty的channel、handler、解码器和编码器
学习视频分享
关注公众号 “入门到放弃之路”,后台回复关键字 Netty 获取