在网络编程中,接触到最多的就是利用Socket进行网络通信开发。在Java中主要是以下三种实现方式BIO、NIO、AIO。

关于这三个概念的辨析以前一直都是好像懂,但是表达的不是很清楚,下面做个总结完全辨析清楚。
1. BIO方式
首先我用一个较为通俗的语言来说明:
BIO 就是阻塞IO,每个TCP连接进来服务端都需要创建一个线程来建立连接并进行消息的处理。如果中间发生了阻塞(比如建立连接、读数据、写数据时发生阻碍),线程也会发生阻塞,并发情况下,N个连接需要N个线程来处理。
这种方式的缺点就是:并发情况下效率很低。
下面用一个图示来说明BIO的工作情况
2. NIO方式
NIO是JDK1.4提出的,还是先用一段通俗的话来说明NIO的工作原理:
NIO 也就是非阻塞IO,是基于事件驱动的思想(Reactor线程模型)。对比与BIO来说,NIO使用一个线程来管理所有的Socket 通道,也就是基于Selector机制,当查询到事件时(连接、接受连接、读、写),就会转发给不同的处理线程(handler)。
下面给出Reactor模型的工作应用图:
3. AIO方式
AIO是JDK1.7提出的,也就是异步IO。AIO采用的是Proactor模式。我们首先应该辨析的是AIO和NIO的区别:
(1)NIO的通知是发生在Handler之前;
(2)AIO的通知是发生在读写等处理之后的回调,有通知时表示相关操作已经结束了。
AIO在进行读写操作时,只需要调用相应的read/write方法,并传入CompletionHandler(动作完成时处理器),在动作完成后会调用CompletionHandler。 NIO的通知是发生在动作之前,是在可读可写的时候,Selector发现了这些事件后就通知并调用Handler处理,
下面给出Proactor模式的工作流程图:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# 网络IO
# (BIO
# NIO
# AIO)详解
# Java中网络IO的实现方式
# 详解Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
# Java网络编程之IO模型阻塞与非阻塞简要分析
# Java IO篇之Reactor 网络模型的概念
# 通过Java带你了解网络IO模型
# Java IO网络模型实现解析
# Java网络IO模型详解(BIO、NIO、AIO)
# 的是
# 也就
# 发生在
# 都是
# 情况下
# 就会
# 是在
# 也会
# 最多
# 是基于
# 我用
# 希望能
# 三种
# 做个
# 只需要
# 很清楚
# 话来
# 谢谢大家
# 后会
# 很低
相关文章:
建站之星伪静态规则如何正确配置?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
香港服务器租用费用高吗?如何避免常见误区?
已有域名能否直接搭建网站?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何确保西部建站助手FTP传输的安全性?
盐城做公司网站,江苏电子版退休证办理流程?
外贸公司网站制作哪家好,maersk船公司官网?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何在局域网内绑定自建网站域名?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
制作网站的基本流程,设计网站的软件是什么?
定制建站是什么?如何实现个性化需求?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
宝塔面板如何快速创建新站点?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
建站之星导航菜单设置与功能模块配置全攻略
建站之星免费版是否永久可用?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
已有域名和空间,如何快速搭建网站?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
php json中文编码为null的解决办法
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
移民网站制作流程,怎么看加拿大移民官网?
如何通过远程VPS快速搭建个人网站?
建站之星后台管理系统如何操作?
如何通过云梦建站系统实现SEO快速优化?
如何彻底卸载建站之星软件?
,网站推广常用方法?
公司网站设计制作厂家,怎么创建自己的一个网站?
如何选择高效可靠的多用户建站源码资源?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何选择高效响应式自助建站源码系统?
创业网站制作流程,创业网站可靠吗?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何在万网主机上快速搭建网站?
c++ stringstream用法详解_c++字符串与数字转换利器
如何快速建站并高效导出源代码?
如何通过万网虚拟主机快速搭建网站?
如何用狗爹虚拟主机快速搭建网站?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Android自定义listview布局实现上拉加载下拉刷新功能
攀枝花网站建设,攀枝花营业执照网上怎么年审?
网页设计网站制作软件,microsoft office哪个可以创建网页?
建站之星后台密码如何安全设置与找回?
如何快速生成可下载的建站源码工具?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
*请认真填写需求信息,我们会在24小时内与您取得联系。