原标题:Java-彻底弄懂netty-程序员不得不理清的BIO与NIO-知识铺
知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。
一、BIO
1.1 特性:同步阻塞IO
1.2 特点:一个请求对应一个线程,上下文切换占用的资源很重。
1.3 缺点:无用的请求也会占用一个线程,没有数据达到,也会阻塞。
1.4 改进:通过线程池机制。 但是还是未能解决一个请求一个线程的本质问题,只是稍加改善。
1.5 试用场景:链接数目较少,固定请求。程序比较清晰,一个请求一个线程,容易理解。要求机器配置较高。
二、NIO
2.1 特性:同步非阻塞IO
2.2 特点:利用IO多路复用技术+NIO,多个socket通道对应一个线程
2.3 复用: 多路复用技术:select,poll和epoll ,linux系统下利用epoll多路复用技术性能更高。
2.4 虚拟内存映射文件操作,不需要read或write操作,虚拟内存相当于缓冲区,提升性能。
2.5 修改文件自动flush到文件
2.6 快速处理大文件返回搜狐,查看更多
责任编辑: