I/O模型之A、B、C、D、E、F、G去火锅店吃火锅

目录

BIO Blocking I/O 即同步阻塞I/O

NIO Non-Blocking I/O 即同步非阻塞I/O

I/O多路复用

AIO Asynchronous I/O 异步I/O

总结


I/O:Input和Output

BIO Blocking I/O 即同步阻塞I/O

应用程序发起read调用后,一直会阻塞,直到系统内核将数据拷贝给应用程序。

缺点:一直阻塞,不能应对高并发场景。

NIO Non-Blocking I/O 即同步非阻塞I/O

应用程序会一直发起read调用,一直到系统内核将数据拷贝给应用程序。

缺点:在内核拷贝数据到应用程序之前,依旧是阻塞的,而且多次发起read调用会占用CPU资源。

I/O多路复用

多路复用 通过一个选择器实现一个线程可以管理多个客户端,只有数据到达之后才会为其服务,每个客户端-内核之间相当于NIO模型

 

信号驱动I/O

主要依靠信号驱动,应用程序发送信号直接返回,不阻塞,内核准备好数据之后发送信号,应用程序再来读取数据,读取数据过程中还是阻塞的。

AIO Asynchronous I/O 异步I/O

应用程序发起read调用,会直接返回,去执行其他操作,等待内核准备好数据,直接回调应用程序的方法将数据交给应用程序。

总结(吃火锅)

看到一个例子结合自己理解分享给大家

场景:A、B、C、D、E、F、G去火锅店吃火锅,需要等位,他们都需要取号。

BIO:A取上号一直在等,直到排队到号,才吃上火锅。

NIO:B取上号就在周围逛,过一会来看一下到没到号,直到到号才吃上火锅。

多路复用:有一个跑腿,在同时帮助C、D、E去看一下有没有到号,假如D到号了,D去吃火锅,并且这个选择器在D吃火锅期间,都是在为D服务的,跑腿是专业的。

信号驱动I/O: F给店长打个电话,帮F取号,等到号了,店长给F打电话,你可以来吃火锅了。

AIO:G取上号,店长说你是至尊VIP,你留个地址,这边做好给你送过去,G就去干其他的事情,后面做好直接送到预留的地址。

还是你至尊黄红蓝黑红铂星VIP最舒服了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571863.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【c++模板】泛型编程(你真的懂模版特化、分离编译和非类型参数吗)

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 今日主菜:模板 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:c大冒险 总有光环在陨落,总有新星在…

【2024系统架构设计】案例分析- 3 数据库

目录 一 基础知识 二 真题 一 基础知识 1 ORM ORM(Object—Relationl Mapping

【OS探秘】【虚拟化】【软件开发】在Windows 11上安装mac OS虚拟机

一、所需原料 Windows 11主机、Oracle VM VirtualBox虚拟化平台、mac OS 11镜像文件 二、安装步骤 1、 在VBox管理器中,点击“新建”,进入向导模式,指定各个字段:

46秒AI生成真人视频爆火,遭在线打假「换口型、声音」

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 是炒作还是真正的 AI 视频能力进化? AI 生成视频已经发展到这个程…

03---java面试八股文——mybatis-------8题

21、MyBatis实现一对一查询 MyBatis 有两种不同的方式加载关联: 嵌套 Select 查询:通过执行另外一个 SQL 映射语句来加载期望的复杂类型。嵌套结果映射:使用嵌套的结果映射来处理连接结果的重复子集。查看mybatis的关联 MyBatis是一种流行的J…

【Java程序设计】【C00344】基于Springboot的船舶维保管理系统(有论文)

基于Springboot的船舶维保管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 🍅文末点击卡片获取源码🍅 开发环境 运行环境:推荐jdk1.8; 开发工具:eclipse以及i…

腾讯VS网易:一场不见终局的游戏未来之战

国内游戏霸主腾讯最近赚足了眼球。 总体上看,腾讯手握“游戏社交”两大王牌,最近发布的财报十分亮眼,其2023年总营收和净利润分别同比增长10%和36%,展现了互联网巨头的强劲活力。 然而巨头亦有焦虑,增值服务营收同比…

ChatGPT5.0最新爆料

前言 Chat GPT 5 发布日期预测开始飞速发展,期待这将是 OpenAI 迄今为止最先进的大型语言模型。OpenAI 是否正在开发 GPT 5?如果是这样,GPT 5 什么时候出来?OpenAI 首席执行官山姆奥特曼 (Sam Altman) 将再…

【Java多线程】1——多线程知识回顾

1 多线程知识回顾 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star…

线程安全集合类原理

一、ConcurrentHashMap (一)、HashMap 1、JDK7 并发死链 采用头插法 扩容源码(扩容时并没有创建新的节点&#xff0c;只是将引用挂在不同的地方) void transfer(Entry[] newTable, boolean rehash) {int newCapacity newTable.length;for (Entry<K,V> e : table) {…

Ubuntu20.04 安装 OpenCV3 过程中遇到的各种问题及其解决办法

文章目录 前言开始安装OpenCV3问题1&#xff1a;ICV: Failed to download ICV package: ippicv_linux_20151201.tgz.1.1 具体步骤 问题2&#xff1a;/usr/include/c/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory问题3&#xff1a;error: CODEC_FLAG_GLO…

Linux指令大全,第二篇(超详细版)

目录 9.1 链接文件的命令 10.1. 用户和权限 11.1 文件压缩和解压命令 12.1 文件操作命令补充 13.1 Vim编辑器的使用 14.1 Linux开关机命令 15.1 Shell Linux 程序设计&#xff08;未完持续更新~&#xff09; 16.1 以上运行效果图如下 9.1 链接文件的命令 9.1.1 …