`

【转】OIO、NIO、AIO区别

 
阅读更多

 

OIO、NIO、AIO区别

网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下OIO、NIO、AIO。

OIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:

NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:

AIO(proactor模型):线程发起IO请求,立即返回;内存做好IO操作的准备之后,做IO操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做IO操作完成或者失败。如下图:

分享到:
评论

相关推荐

    netty介绍文档

    6. 支持多种传输方式:Netty支持NIO、OIO、AIO、本地传输、嵌入式传输等多种传输方式。 7. 支持多种协议:Netty支持TCP、UDP、SCTP等多种协议,能够满足不同网络协议的开发需求。 Netty中的异步操作体现为一个...

    netty项目代码

    在Netty中,Oio和Nio是两种不同的IO模型,它们在处理网络连接时有着显著的区别。 1. **Oio(阻塞IO)**:这是Java最初的IO模型,基于BIO(Blocking IO)。在Oio模式下,所有的读写操作都是阻塞的,也就是说,当一个...

    oio.radio:oio.radio网站

    任何人都可以通过Shoutcast客户端(例如在oio广播上进行流式传输。 直播人员可以在Discord的#oio-radio频道上进行广播时间协调。 :female_sign:‍:female_sign: 信息和背景图片 网站的“后端”是Google表格电子...

    OIO光学优化算法附matlab代码.zip

    1.版本:matlab2014/2019a/2021a,内含运行结果,不会运行可私信 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子...

    oio-sds:用于大数据和AI的高性能软件定义的对象存储,支持Amazon S3和Openstack Swift

    OpenIO软件定义的存储OpenIO SDS是用于...入门有一个简单的脚本可以执行: ./tools/oio-reset.sh 如果成功,您将很高兴尝试自己的小型SDS实例。 无需root权限!建立有关如何编译和配置解决方案的详细信息,请参考 。

    netty4概述.pdf

    Netty支持多种传输类型,包括NIO(非阻塞IO)、OIO(旧式阻塞IO)、AIO(异步IO,仅限Java 7及以上版本),以及本地和嵌入式传输。Netty还支持多种协议,包括TCP、UDP、SCTP(流控制传输协议,仅限Linux平台)、UDT...

    netty+spring服务端-omen-1.3

    omen-1.3 自己基于netty开发的服务端,支持spring配置服务器启动模式:http,tcp,websocket等,并支持NIO和OIO方式,项目已应用于生产,可以通过jar形式加入其它项目,业务类实现业务service,启动不依赖于其他应用...

    OIOBasicPrivilegeProfileParser-java:OIO 基本权限配置文件解析器

    "OIOBasicPrivilegeProfileParser-java"是一个专门为OIO(可能是一个特定的框架或系统的缩写)设计的基本权限配置文件解析器,主要用于处理与用户权限相关的配置信息。这个解析器用Java编程语言实现,Java是广泛用于...

    oio-swift:Openstack Swift 网关和中间件的 Openio 风格,允许通过 Openstack Swift 网关访问 OpenIO SDS

    pip install git+git://github.com/open-io/oio-swift.git 通过运行从源下载并安装: python setup.py install 请注意,至少需要 swift 2.7.0。 更新 从GitHub: pip install --upgrade git+git://github....

    【智能优化算法-光学启发优化算法】基于光学启发优化算法OIO求解单目标优化问题附matlab代码.zip

    1.版本:matlab2014/2019a/2021a,内含运行结果,不会运行可私信 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子...

    netty+spring服务端-omen-1.1

    omen-1.1 自己基于netty开发的服务端,支持spring配置服务器启动模式:http,tcp,websocket等,并支持NIO和OIO方式,项目已应用于生产,可以通过jar形式加入其它项目,业务类实现业务service,启动不依赖于其他应用...

    netty服务端及客户端,支持HTTP和WEBSOCKET和SSL

    自己基于netty开发的服务端,支持spring配置服务器启动模式:http,websocket,ssl等,并支持NIO和OIO方式,项目已应用于生产,可以通过jar形式加入其它项目,业务类实现业务service,启动不依赖于其他应用服务器,内...

    netty服务端及客户端,支持HTTP和WEBSOCKET和SSL 最新版

    本人基于netty开发的服务端,支持spring配置服务器启动模式:http,websocket,ssl等,并支持NIO和OIO方式,项目已应用于生产,可以通过jar形式加入其它项目,业务类实现业务service,启动不依赖于其他应用服务器,内...

    Netty源码依赖包

    - **简介**:Transport模块提供了对不同传输协议的支持,例如NIO、OIO、EPOLL等。 - **关键类与接口**: - `NioEventLoopGroup`:针对NIO的事件循环组实现。 - `EpollEventLoopGroup`:专门针对Linux系统的EPOLL...

    OIOSAML.Java

    相关描述如下OIO SAML 2(工件ID:oiosaml2.java) OIO SAML 2.0.9:最新的Maven软件包版本:2.1.1( ) OIO SAML 2.1.0:最新的Maven软件包版本:2.1.1( )OIO SAML 3(工件ID:oiosaml3.java) OIO SAML 3.0.2:...

    netty源码 4.*版本

    5. **transport**:传输层模块,实现了不同类型的网络通信,如基于 NIO 的 transport 或基于 OIO(旧式阻塞 I/O)的 transport。 通过阅读 Netty 源码,我们可以学习到以下知识点: - 理解 Java NIO 的工作原理,...

    office效率专家oiio效率专家插件,word,ppt,excel效率专家插件office tool

    Office效率专家OiIO是一款专为Microsoft Office套件设计的增强工具,主要针对Word、PowerPoint和Excel等常用应用。这款插件虽然推出时间较早,功能相对有限,但因其简洁的界面和免费特性,赢得了一部分用户的青睐。...

    Netty+3.1中文用户手册.doc

    Netty 的 Channel API 提供了一个统一接口,可以处理多种底层 I/O 模型,如 NIO、OIO 和 Epoll。 2.3. 基于拦截链模式的事件模型 ChannelPipeline 实现了事件的拦截链,允许添加多个 ChannelHandler 来处理事件。 ...

Global site tag (gtag.js) - Google Analytics