BIO、NIO、AIO区别详解

这篇具有很好参考价值的文章主要介绍了BIO、NIO、AIO区别详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BIO:同步阻塞

主线程发起io请求后,需要等待当前io操作完成,才能继续执行。

NIO:同步非阻塞

引入selector、channel、等概念,当主线程发起io请求后,轮询的查看系统是否准备好执行io操作,没有准备好则主线程不会阻塞会继续执行,准备好主线程会阻塞等待io操作完成。

AIO:异步非阻塞

主线程发起io请求后,不会阻塞,当操作系统io操作完成后向回调函数传递结果,应用程序通过回调函数获得io操作结果。

NIO和AIO区别:NIO是io操作准备好,然后阻塞等待io完成,AIO不需要等待IO操作,io操作完成操作系统会通过回调通知主线程文章来源地址https://www.toymoban.com/news/detail-465534.html

到了这里,关于BIO、NIO、AIO区别详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【java】BIO、NIO、AIO

    同步阻塞IO,使用BIO读取数据时,线程会阻塞住,并且需要线程主动去查询是否有数据可读,并且需要处理完一个Socket之后才能处理下一个Socket 在这种模型下,每个 I/O 操作都会阻塞当前线程,直到操作完成才会返回。这意味着当一个线程执行 I/O 操作时,它会被阻塞,无法执

    2024年04月10日
    浏览(26)
  • java中的BIO NIO AIO

            多路复用IO模型是目前使用的比较多的模型。java中的NIO常用的理解是在 网络IO中,那么在网络IO中为什么NIO比BIO效率更高?我们的web项目中是用的哪种呢?可以往下看。         JavaNIO实际上就是多路复用IO。在多路复用IO模型中,会有一个线程不断地区轮询多个

    2024年02月15日
    浏览(28)
  • Java中的BIO、NIO与AIO

       I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。 Java 共支持 3 种网络编程模型 I/O 模式: BIO 、 NIO 、 AIO 。    Java BIO(Blocking I/O) :是传统的java io 编程,其相关的类和接口在 java.io。同步并阻塞(传统阻塞型),服

    2024年04月26日
    浏览(20)
  • JAVA的BIO、NIO、AIO模式精解(一)

    在不同系统或进程间数据交互,或高并发场景下都选哟网络通信。早期是基于性能低下的同步阻塞IO(BIO)实现。后支持非阻塞IO(NIO)。 前置须知:javsse,java多线程,javaIO,java网络模型 目的:局域网内通信,多系统间底层消息传递机制,高并发下大数据通信,游戏应用。 IO模型

    2023年04月27日
    浏览(26)
  • 【Java基础】BIO/NIO/AIO的详细介绍与比较区分

    BIO 全称 Blocking I/O,它是 JDK 1.4 之前的传统IO模型,是一种同步阻塞的IO,线程发起 IO 后,一直阻塞,直到缓冲区数据就绪后,在进入下一步操作 BIO存在的问题: 无法应对高并发的场景 连接建立后,当前线程没有数据可读就会阻塞,造成资源浪费 BIO适用场景: 客户端连接数

    2024年01月20日
    浏览(24)
  • JAVA中三种I/O框架——BIO、NIO、AIO

    BIO,同步阻塞IO模型,应用程序发起系统调用后会一直等待数据的请求,直至内核从磁盘获取到数据并拷贝到用户空间; 在一般的场景中,多线程模型下的BIO是成本较低、收益较高的方式。但是,如果在高并发的场景下,过多的创建线程,会严重占据系统资源,降低系统对外

    2024年02月08日
    浏览(41)
  • Java中的三种I/O模型:BIO、NIO和AIO

    I/O(输入/输出)操作是任何应用程序中必不可少的一部分,它涉及到与文件、网络或其他设备之间的数据传输。Java提供了几种不同的I/O模型,其中最常见的是AIO(异步非阻塞I/O)、BIO(阻塞I/O)和NIO(非阻塞I/O)。这些模型在处理I/O操作时具有不同的工作方式、特性和适用

    2024年02月08日
    浏览(29)
  • 【JAVA基础】- 同步非阻塞模式NIO详解

    NIO(Non-Blocking IO)是同步非阻塞方式来处理IO数据。服务器实现模式为一个请求一个线程,即客户端发送的链接请求都会注册到选择器上,选择器轮询到连接有IO请求时才启动一个线程进行处理。 同步(synchronous) :调用方式指应用(Application),调用方发起有一个功能调用时,在

    2024年02月13日
    浏览(28)
  • 阻塞非阻塞IO(BIO和NIO),IO多路复用

    1.概念 NIO(New Input/Output)和BIO(Blocking Input/Output)是Java中用于处理输入输出的两种不同的模型。   BIO 会 阻塞 ,等有了消息,立刻返回,一个线程处理一个recv(需要很多线程)。 NIO 有没有消息,都返回(但程序要自己判断,返回空就循环重复);一个线程可以处理多个

    2024年02月09日
    浏览(29)
  • BIO、NIO线程模型

    BIO(Blocking IO): 同步阻塞模型,一个客户端连接对应一个处理线程,即:一个线程处理一个客户端请求。     单线程版本: 服务端在处理完第一个客户端的所有事件之前,无法为其他客户端提供服务。     多线程版本:如果出现大量只连接不发数据的话,那么就会一直占用

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包