网易首页 > 网易号 > 正文 申请入驻

面试官问:BIO、NIO、AIO之间区别是什么?

0
分享至

今天这是我在教室分享的一道面试题,怕忘记了自己花时间去研究了一下,看了大量的资料后整理的,不收藏你们就亏了哟。

面试题:BIO,NIO,AIO的区别?这是个网络编程的面试题:

在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。

同步

自己的理解:

也就是必须一件一件事做,等前一件做完了才能做下一件事 (提交请求->等待服务器处理->处理完返回 这个期间客户端浏览器不能干任何事 )

官方:

使用同步IO时,Java自己处理IO读写。
异步:
自己的理解:
请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

官方:

使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS,完成后OS通知Java处理(回调)。
阻塞:
自己的理解:
阻塞就是说在煮水的过程中,你不可以去干其他的事情(性能和可靠性都不好)

官方:

使用阻塞IO时,Java调用会一直阻塞到读写完成才返回。
非阻塞:
自己的理解:
非阻塞就是在同样的情况下,可以同时去干其他的事情(对于低负载、低并发的应用程序)

官方:

使用非阻塞IO时,如果不能立马读写,Java调用会马上返回,当IO事件分发器通知可读写时在进行读写,不断循环直到读写完成。

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。

传统的BIO(同步阻塞的BIO)

就是说服务端一旦接受客户端的连接,就可以建立通信套接字在这个通信套接字上进行读写操作,此时不能再接收其他客户端连接请求,只能等待同当前连接的客户端的操作执行完成,不过可以通过多线程来支持多个客户端的连接,循环导致高cpu消耗。

服务器的实现模式是一个连接一个线程,这样的模式很明显的一个缺陷是:

由于客户端连接数与服务器线程数成正比关系,可能造成不必要的线程开销,严重的还将导致服务器内存溢出。当然,这种情况可以通过线程池机制改善,但并不能从本质上消除这个弊端。

问题:当出现高并发怎么办?

解决这个问题就有了下面的。另外,更多面试资料,公众号Java精选,回复java面试,获取面试资料,支持在线刷题。

NIO(同步非阻塞的NIO)

从JDK1.4以后开始,JDK引入的新的IO模型NIO


  • Channel(通道):通道是双向的,可读也可写,而流的读写是单向的。无论读写,通道只能和Buffer交互。因为 Buffer,通道可以异步地读写。



  • Buffer(缓冲区):Buffer是一个对象,它包含一些要写入或者要读出的数据



  • Selector(选择器):选择器用于使用单个线程处理多个通道。因此,它需要较少的线程来处理这些通道。线程之间的切换对于操作系统来说是昂贵的。因此,为了提高系统效率选择器是有用的。


就是说加了三个功能来解决bio中的单线程一对多的问题

而服务器的实现模式是多个请求一个线程,即请求会注册到多路复用器Selector上,多路复用器轮询到连接有IO请求时才启动一个线程处理。

Java NIO: 单线程管理多个连接。

劣处:维护成本高,容易出现bug,项目大了之后消耗成本

AIO(异步非阻塞的AIO)

JDK1.7发布了NIO2.0也可以说是Nio的加强版,它是异步非阻塞的IO模型。

异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。

这就是真正意义上的异步非阻塞,服务器的实现模式为多个有效请求一个线程,客户端的IO请求都是由OS先完成再通知服务器应用去启动线程处理(回调)。

应用场景:并发连接数不多时采用BIO,因为它编程和调试都非常简单,但如果涉及到高并发的情况,应选择NIO或AIO,更好的建议是采用成熟的网络通信框架Netty。

总结:理解了这,浓缩了还是有点东西的

  • BIO是一个连接一个线程。

  • NIO是一个请求一个线程。

  • IO是一个有效请求一个线程。

作者:程序员小小刘 https://blog.csdn.net/weixin_55604133/article/details/117048887

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!

特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注

文章有帮助的话,点在看,转发吧!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
WTT美国大满贯:伊藤美诚被淘汰!0:3无缘八强,张本美和晋级

WTT美国大满贯:伊藤美诚被淘汰!0:3无缘八强,张本美和晋级

国乒二三事
2026-07-03 11:02:33
C罗深夜现身酒店阳台!与葡萄牙球迷同庆+送飞吻 上万人齐喊SIUU

C罗深夜现身酒店阳台!与葡萄牙球迷同庆+送飞吻 上万人齐喊SIUU

老吴教育课堂
2026-07-03 15:33:59
桃子被发现!医生研究发现:吃得越多,高血脂患者血管或越干净?

桃子被发现!医生研究发现:吃得越多,高血脂患者血管或越干净?

岐黄传人孙大夫
2026-07-03 11:32:20
伊朗万万没料到,哈梅内伊灵车未抵达圣城,以色列斩首计划已启动

伊朗万万没料到,哈梅内伊灵车未抵达圣城,以色列斩首计划已启动

安珈使者啊
2026-07-03 09:51:40
4年6691万美元!状元迪班萨正式签约奇才 7月10日首秀战彼得森

4年6691万美元!状元迪班萨正式签约奇才 7月10日首秀战彼得森

罗说NBA
2026-07-03 06:19:42
教师大势已定?不出意外的话,今明年教师行业将迎来3大转变

教师大势已定?不出意外的话,今明年教师行业将迎来3大转变

侃故事的阿庆
2026-07-01 19:49:39
1天4个瓜!国外生子、被抓进去、自曝怀双胎、韩红最让人意外

1天4个瓜!国外生子、被抓进去、自曝怀双胎、韩红最让人意外

三石记
2026-06-25 11:54:09
今夏最郁闷的球队!追求字母失败,追求小卡失败,现在又要追老詹

今夏最郁闷的球队!追求字母失败,追求小卡失败,现在又要追老詹

球毛鬼胎
2026-07-03 16:27:39
黄有龙澳洲赌债案一审落槌:2.8亿输光、2.7亿还清,亿元利息主张

黄有龙澳洲赌债案一审落槌:2.8亿输光、2.7亿还清,亿元利息主张

三农老历
2026-07-02 15:26:26
资产30亿的内马尔父母离婚,母亲男朋友比自己还小,老爸有新恋情

资产30亿的内马尔父母离婚,母亲男朋友比自己还小,老爸有新恋情

全球时尚号
2026-07-01 23:51:29
媒体人:亚洲足球是全方位落后,如同一把散牌没有炸弹

媒体人:亚洲足球是全方位落后,如同一把散牌没有炸弹

懂球帝
2026-07-03 13:07:40
国内知名电玩店回应索尼停产!更多电玩店倒闭

国内知名电玩店回应索尼停产!更多电玩店倒闭

游民星空
2026-07-02 12:38:18
世人都误解了:俄国人从来不善战,他们更擅长的是承受恐怖伤亡

世人都误解了:俄国人从来不善战,他们更擅长的是承受恐怖伤亡

李健政观察
2026-06-30 16:47:04
亿万富翁希望SpaceX失败:如果SpaceX成功,这个世界将非常危险!网友:时代不属于你了

亿万富翁希望SpaceX失败:如果SpaceX成功,这个世界将非常危险!网友:时代不属于你了

大白聊IT
2026-07-02 17:33:58
一等就是9个小时!日本市民大排长龙中国相机 想当年国人排队抢索尼、佳能等

一等就是9个小时!日本市民大排长龙中国相机 想当年国人排队抢索尼、佳能等

快科技
2026-07-02 10:12:06
奥利塞为什么选了法国?答案藏在亨利的眼光里!

奥利塞为什么选了法国?答案藏在亨利的眼光里!

曹老师评球
2026-07-02 22:31:06
西安赛格国际购物中心回应一商户负责人坠亡

西安赛格国际购物中心回应一商户负责人坠亡

界面新闻
2026-07-02 20:40:37
李小璐沉默8年后,她首次公开发声:那个时候的我是个恋爱脑

李小璐沉默8年后,她首次公开发声:那个时候的我是个恋爱脑

文刀贰
2026-06-30 21:19:47
70名证人出庭指控,31名内部人反水,海牙法院死磕杜特尔特

70名证人出庭指控,31名内部人反水,海牙法院死磕杜特尔特

孤单是寂寞的毒
2026-07-03 11:49:13
“摸奶子”再惹争议,OPPO的流量反噬开始了

“摸奶子”再惹争议,OPPO的流量反噬开始了

品牌头版
2026-05-13 10:18:15
2026-07-03 18:43:00
Java精选
Java精选
一场永远也演不完的戏
1796文章数 3859关注度
往期回顾 全部

科技要闻

万亿富豪马斯克 舍不得特斯拉员工敞开用AI

头条要闻

22岁运动员在景区担任NPC 称被游客掰断胳膊对方失联

头条要闻

22岁运动员在景区担任NPC 称被游客掰断胳膊对方失联

体育要闻

C罗穿已故队友若塔球衣谢场 眼中含泪

娱乐要闻

海来阿木孕期出轨指控掀起全网热议

财经要闻

AI“鬼故事”不断,市场开始重估?

汽车要闻

方程豹钛9内饰曝光 用上了长联屏设计/下半年上市

态度原创

家居
亲子
健康
教育
房产

家居要闻

传奇筑 日常诗

亲子要闻

宝蓝在房间搭了一个能钓鱼的玩具,被爸爸弄坏了,赶紧找人来修

听说少吃点能抗衰老?专家讲解!

教育要闻

儿子毕业典礼,母亲出尽洋相,父子表情说明一切:上不得台面

房产要闻

总裁空缺17个月、现金缺口超1000亿:金融局“局外人”入局万科

无障碍浏览 进入关怀版