当前位置: 首页 > ops >正文

Linux的五种IO模型

一个典型的网络IO调用分为两个阶段,分别是数据就绪和数据读写,数据就绪阶段分为阻塞和非阻塞,表现为阻塞当前线程或者是直接返回。
同步表示A向B请求调用一个网络IO接口时,数据的读写都是由请求方自己完成的;异步则是A向B请求调用一个网络IO接口时,向B传入请求的事件以及事件发生时通知的方式,A就能处理其他逻辑了,当B监听的事件处理完成后在通知A。

阻塞

在这里插入图片描述

非阻塞

在这里插入图片描述

IO复用

select/poll/epoll在监听socket是否发生事件(是否有数据可操作),一个IO复用可以监听多个套接字。(同步的)
在这里插入图片描述

信号驱动

在这里插入图片描述
内核在第一个阶段是异步,在第二个阶段是同步,与非阻塞IO的区别在于他提供了消息通知机制,不需要用户进程不断地轮询检查,减少了系统API的调用次数;

异步IO

在这里插入图片描述

http://www.xdnf.cn/news/9140.html

相关文章:

  • Rust语言学习教程、案例与项目实战指引
  • c/c++的opencv双边滤波
  • 八大员-质量员考试复习资料有哪些?
  • 【Marp】自定义主题 - box01
  • Kotlin 实战:Android 设备语言与国家地区的 5 种获取方式
  • Playwright 常用命令、参数详解及使用示例
  • 精益数据分析(88/126):从营收平衡到规模化扩张——企业增长的最后一道关卡
  • 如何保护网络免受零日漏洞攻击?
  • php 实现基数排序
  • 编程规范Summary
  • ASP.NET Web Forms框架识别
  • 【论文精读】2024 arXiv --VEnhancer现实世界视频超分辨率(RealWorld VSR)
  • 【数据结构】——二叉树堆(下)
  • Windows系统下 NVM 安装 Node.js 及版本切换实战指南
  • 什么是 WPF 技术?什么是 WPF 样式?下载、安装、配置、基本语法简介教程
  • 云效流水线Flow使用记录
  • 论文阅读笔记——Step1X-Edit: A Practical Framework for General Image Editing
  • Oracle 正则表达式匹配(Oracle 11g)
  • Rockey Linux 安装ffmpeg
  • 抖音不获取位置会显示ip属地吗?全面解析
  • AWS EC2 实例告警的创建与删除
  • some面试题2
  • 15.进程间通信(一)
  • Linux 527 重定向 2>1 rsync定时同步(未完)
  • python打卡day38
  • Django【应用 02】第一个Django应用开发流程图
  • WPF【11_1】WPF实战-重构与美化(Entity Framework)
  • 分布式常见概念
  • 25.5.27学习总结
  • pod创建和控制