美文网首页
IO模型一些思考

IO模型一些思考

作者: 康俊1024 | 来源:发表于2019-07-16 11:25 被阅读0次

为什么说BIO是同步阻塞的?

  • 同步阻塞针对的是磁盘文件读写IO操作来说的,不是针对网络模型而言。
  • 因为用BIO的流读写文件,例如FileInputStream,是说你发起个IO请求直接hang死,卡在那里,必须等着搞完这次IO才能返回。

为什么说NIO是同步非阻塞的?

  • 因为无论多少客户端都可以接入服务端,客户端接入并不会耗费一个线程,只会创建一个连接然后注册到selector上去,这样你就可以去干其他你想干的其他事情了。
  • 一个selector线程不断的轮训所有的socket连接,发现有事件了就通知你,然后你就启动一个线程处理一个请求即可,这个过程就是非阻塞的。
  • 但是这个处理过程中,你还是要先读取数据,处理,再返回,这是同步的过程。

为什么说AIO是异步非阻塞的?

  • 通过AIO发起个文件IO操作之后,你立马就返回可以干别的事了,接下来你也不用管,操作系统自己干完了IO之后,告诉你说ok了。
  • 当你基于AIO的api去读写文件时,当你发起一个请求之后,剩下的事情就是交给操作系统了。
  • 当读写完成后,操作系统会回调你的接口,告诉你操作完成
  • 在这期间不需要等待,也不需要去轮训判断操作系统完成的状态,你可以去干其他事情。
  • 同步就是自己主动还得去轮训操作系统,异步就是操作系统反过来通知你。所以说AIO就是异步非阻塞的。

相关文章

  • IO模型一些思考

    为什么说BIO是同步阻塞的? 同步阻塞针对的是磁盘文件读写IO操作来说的,不是针对网络模型而言。 因为用BIO的流...

  • 1.Nette入门第一章——IO演进

    1. IO 基础 1.1. linux网络IO模型 阻塞IO模型 非阻塞IO模型 IO多路复用模型(NIO) 信...

  • 细谈Select,Poll,Epoll

    阻塞 io 模型 blocking IO非阻塞 io 模型 nonblocking IOio多路复用模型 IO m...

  • 2.五种IO模型

    0.IO介绍1.阻塞IO模型2.非阻塞IO模型3.IO多路复用模型4.信号驱动IO模型5.异步IO模型6.五种IO...

  • 网络IO模型

    网络IO的模型大致包括下面几种 同步模型(synchronous IO)阻塞IO(bloking IO)非阻塞IO...

  • 「基础知识总结」 IO模型

    IO模型 五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO...

  • 五种 IO 模型

    五种 IO 模型 参考链接 一共有五种 IO 模型 阻塞 IO 非阻塞 IO 多路复用 IO 信号驱动 IO 异步...

  • Java中的IO模型

    Java中的IO模型 Java中的IO模型有四种: 同步阻塞IO 同步非阻塞IO IO多路复用 异步IO 其中IO...

  • Linux系统I/O模型及select、poll、epoll原理

    基本概念说明 理解Linux的IO模型之前,首先要了解一些基本概念,才能理解这些IO模型设计的依据 用户空间和内核...

  • 23、pythonIO模型

    python之路——IO模型 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 ...

网友评论

      本文标题:IO模型一些思考

      本文链接:https://www.haomeiwen.com/subject/skrzkctx.html