理解不同IO模式的生活示例

有A,B,C,D四个人在钓鱼:
A用的是最老式的鱼竿,所以呢,得一直守着,等到鱼上钩了再拉杆;
B的鱼竿有个功能,能够显示是否有鱼上钩,所以呢,B就和旁边的MM聊天,隔会再看看有没有鱼上钩,有的话就迅速拉杆;
C用的鱼竿和B差不多,但他想了一个好办法,就是同时放好几根鱼竿,然后守在旁边,一旦有显示说鱼上钩了,它就将对应的鱼竿拉起来;
D是个有钱人,干脆雇了一个人帮他钓鱼,一旦那个人把鱼钓上来了,就给D发个短信。
A blocking
B no blocking
C IO-Multplexing
D asyno-IO

时间: 2024-08-05 12:55:36

理解不同IO模式的生活示例的相关文章

python IO模式(多路复用和异步IO深入理解)

1.事件渠道模型.事件渠道为异步IO的原型. 2.IO模式,一次IO调用会经历两个阶段.一.等待数据阶段,将数据从网络或者是磁盘读取到系统内核(kennel) 二.将数据从内核拷贝到进程中. 基于这两个阶段,linux系统下面产生了五种网络网络模式方案. -阻塞I/O(blocking IO) -非阻塞I/O(nobokcing IO) - I/O多路复用.(I/O multiplexing) - 信号驱动 -异步I/O(async) 由于信号驱动使用较少,主要介绍其余四种模式. 3.阻塞I/O

高并发服务器---基础----IO模式和IO多路复用

转自:https://www.cnblogs.com/zingp/p/6863170.html 阅读目录 1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 4 select/poll/epoll的区别及其Python示例 网络编程里常听到阻塞IO.非阻塞IO.同步IO.异步IO等概念,总听别人装13不如自己下来钻研一下.不过,搞清楚这些概念之前,还得先回顾一些基础的概念. 回到顶部 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和

IO模式和IO多路复用

网络编程里常听到阻塞IO.非阻塞IO.同步IO.异步IO等概念,总听别人装13不如自己下来钻研一下.不过,搞清楚这些概念之前,还得先回顾一些基础的概念. 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址,处理器先产生一个虚拟地址,通过地址翻译成物理地址(内存的地址),再通过总线的传递,最后处理器拿到某个物理地址返回的字节. 对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作

IO模式和IO多路复用详解

网络编程里常听到阻塞IO.非阻塞IO.同步IO.异步IO等概念,总听别人装13不如自己下来钻研一下.不过,搞清楚这些概念之前,还得先回顾一些基础的概念. 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址,处理器先产生一个虚拟地址,通过地址翻译成物理地址(内存的地址),再通过总线的传递,最后处理器拿到某个物理地址返回的字节. 对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作

Linux IO模式及 select、poll、epoll详解

注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. 一 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32

理解Windows内核模式与用户模式

 1.基础 运行 Windows 的计算机中的处理器有两个不同模式:"用户模式"和"内核模式".根据处理器上运行的代码的类型,处理器在两个模式之间切换.应用程序在用户模式下运行,核心操作系统组件在内核模式下运行.多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行. 当启动用户模式的应用程序时,Windows 会为该应用程序创建"进程".进程为应用程序提供专用的"虚拟地址空间"和专用的"句柄表格"

IO模式——同步(堵塞、非堵塞)、异步

为什么IO模式非常重要?由于现代的计算机和操作系统的架构决定了CPU是稀缺资源,大家都要来一起竞争.而IO(特别是网络相关的IO)的速度往往较慢.所以怎样进行IO就有了多种模式,包含同步.异步.堵塞.非堵塞等等. 不少人把这几个概念放到一起讨论,非常多时候也难以区分. 这里从根上剖析下该怎么看待这几个概念. 首先.异步和同步是相对的,而同步情况下又有堵塞和非堵塞之分. 异步非常easy理解.当用户程序须要进行IO的时候,发出IO请求,然后就立马返回.能够继续做其他事情. 比如.从网络收包,当包抵

非阻塞IO模式原理

与阻塞模式对应的另一种模式叫非阻塞IO模式,在整个通信过程中读和写操作不会阻塞,当前处理线程不存在阻塞情况.从A机器到B机器它的通信过程是:A机器一条线程将通道设置为写事件后往下执行,而另外一条线程遍历到此通道有字节要写并往socket写数据,B机器一条线程遍历到此通道有字节要读,交给另外一条线程对socket读数据,处理完又把通道设置为写事件,遍历线程遍历到此通道有字节要写,又往socket写数据传往A机器,不断往下循环此操作直到完成通信.这个过程每台机器都有两类主要线程,一类是负责逻辑处理且

深入理解【代理模式】原理与技术

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问. 23种常用的面向对象软件的设计模式之一. 代理模式分为静态代理.动态代理. 如何理解代理模式? 思考抽象问题最好的办法就是具体化! 比如我们需要为一个业务方法在执行前后记录日志,为了达到解耦的目的,我们可以再新建一个类并定义一个新的业务方法,该方法既可以调用原业务方法,又可以在调用前后进行日志处理,例如: CarProxy.class public void move() { System.out.println("日志开始记录..