千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:北京千锋IT培训  >  技术干货  >  大数据技术干货  > nio和bio的区别为啥nio好?

nio和bio的区别为啥nio好?

来源:千锋教育
发布人:qyf
时间: 2022-11-08 14:34:26

nio和bio的区别为啥nio好

  同步阻塞IO(JAVA BIO/Blocking IO ): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销.

  Java NIO(Non-Blocking IO ) : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。NIO的优点在于首先基于缓存读写文件,能够批量操作,然后用channel双向读写数据,减少每次打开断开流的资源消耗。引入selecore的概念,用一个线程管理多个通道,大大减少线程开销。

  Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。

  AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持I/O属于底层操作,需要操作系统支持,并发也需要操作系统的支持,所以性能方面不同操作系统差异会比较明显。另外NIO的非阻塞,需要一直轮询,也是一个比较耗资源的。所以出现AIO。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

spark有什么用

2023-03-14

算法题(力扣)--盛水最多的容器

2022-11-08

nio和bio的区别为啥nio好?

2022-11-08

最新文章NEW

hadoop的核心是哪两部分

2023-03-14

算法题(力扣)-有效的括号

2022-11-14

DAU(日活)为何会骤降?给出分析思路

2022-11-14

相关推荐HOT

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>