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

Linux的五种IO模型

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

阻塞

在这里插入图片描述

非阻塞

在这里插入图片描述

IO复用

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

信号驱动

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

异步IO

在这里插入图片描述

相关文章:

  • 《软件工程》实战— 在线教育平台开发
  • 2.1 Maven项目架构管理工具
  • Pathway:重新定义实时数据处理的Python框架
  • PHP实战:安全实现文件上传功能教程
  • SQL进阶之旅 Day 5: 常用函数与表达式
  • K8s边缘集群赋能工业自动化:从传感器监控到智能决策的全流程升级
  • 跨协议协同智造新实践:DeviceNet-EtherCAT网关驱动汽车焊接装配效能跃迁
  • UE5 蓝图,隐藏一个Actor,同时隐藏它的所有子物体
  • OpenCV CUDA模块图像处理------颜色空间处理之GPU 上交换图像的通道顺序函数swapChannels()
  • 【STM32】HAL库 之 CAN 开发指南
  • JS高级 - 对象
  • 十一、Samba文件共享服务
  • 2025年- H55-Lc163--124. 二叉树的最大路径和(深搜)--Java版
  • 以知识管理赋能 DevSecOps,加速关键领域软件自主演进
  • 字符串day7
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • 科技赋能建筑行业,智能楼宇自控系统崭露头角成发展新势力
  • 拆解汽车HMI设计:如何用3D可视化提升驾驶安全感?
  • 服务发现Nacos
  • CMake指令:file()
  • 热卖平台网站怎么做/旅行网站排名
  • 2022年好的网站在线客服/关键词推广技巧
  • wordpress 做下载站/百度云超级会员试用1天
  • 东莞做汽车有没有买票的网站/短视频代运营方案模板
  • 网站是自己做还是让别人仿/创建网址快捷方式
  • 公司是否可以做多个网站/如何建立网页