首页 > 文档
优化设计,在 IO 方面应该注意哪些要点
- 2024-05-30
- 1090 ℃
I/O 基础介绍
I/O(Input/Output)意思是输入输出,其实就是数据传递的一个过程,作为后台服务需要更多地与外部进行数据交互,那么就免不了 I/O 操作。I/O 的类型也是非常多的,我们应该掌握常用的一些 I/O 模型分类。
I/O 分为以下 5 种模型,在介绍分类之前,我们先了解 I/O 在系统层面会有 2 个阶段(以读为例子):
第一个阶段是读取文件,将文件放入操作系统内核缓冲区;
第二阶段是将内核缓冲区拷贝到应用程序地址空间。
1.阻塞 I/O
例如读取一个文件,我们必须要等待文件读取完成后,也就是完成上面所说的两个阶段,才能执行其他逻辑,而当前是无法释放 CPU 的,因此无法去处理其他逻辑。
2.非阻塞 I/O
非阻塞的意思是,我们发起了一个读取文件的指令,系统会返回正在处理中,然后这时候如果要释放进程中的 CPU 去处理其他逻辑,你就必须间隔一段时间,然后不停地去询问操作系统,使用轮询的判断方法看是否读取完成了。
3.多路复用 I/O
这一模型主要是为了解决轮询调度的问题,我们可以将这些 I/O Socket 处理的结果统一交给一个独立线程来处理,当 I/O Socket 处理完成后,就主动告诉业务,处理完成了,这样不需要每个业务都来进行轮询查询了。
相关内容
教师招聘面试秘籍资料 -...
小学教师资格证考试历年真题
英语八级名人演讲10篇音频
2024考研政治全程复习资料
考研复习资料生理带背材料
2014年万份教师招聘资料...
一站式学习C编程
CSS设计指南(第3版)
-
面对海量数据,为什么无法设计出完美的分布式缓存体系?
2024-05-24 1561
-
狂人C:程序员入门必备
2024-05-24 1162
-
七周七数据库
2024-05-24 1072
-
Node.js 从工程化工具到后端服务应用的转变
2024-05-24 1413
-
3 大主流系统框架:由浅入深分析 Expre、Koa 和 Egg.j
2024-05-24 1366
-
结构化面试技巧
2024-08-19 1366
-
实现一个深浅拷贝
2024-05-24 1167
-
ECSHOP开发手册+使用手册
2024-05-24 1509
-
为何MC能长期维持高性能读写
2024-05-24 1072
-
事件循环,高性能到底是如何做到的
2024-05-24 1212
文章评论 (0)
- 这篇文章还没有收到评论,赶紧来抢沙发吧~


下载完整资料
点击分享文章