IO多路复用的理解

  • IO:网络IO
  • 多路:多个链接
  • 复用:复用一个或多个线程
  • 在IO多路复用中,当一个线程在等待IO操作时,实际上是将该线程中的事件循环或IO轮询操作交给了操作系统内核 。这样的操作系统调用通常会将线程置于休眠状态,直到至少一个监视的IO事件就绪。此时,不会占用CPU资源,而是允许CPU去处理其他任务。

  • 当有一个或多个IO事件就绪时,操作系统会通知等待的线程 ,线程从休眠状态中唤醒,并处理就绪的IO事件。这种机制允许单个线程处理多个IO连接,提高了系统的效率和性能。因此,IO多路复用是一种高效的并发编程技术,特别适用于高并发的网络服务器应用,如Web服务器和数据库服务器等。

  • 总结:IO多路复用实现了线程的复用,而不是CPU内核的复用。这也是IO多路复用的一个主要优势之一:在一个线程中同时监视多个IO事件,而不需要为每个IO连接创建一个独立的线程。这样可以大大减少线程的创建和销毁开销,从而节省系统资源并提高并发处理能力。

相关推荐
张龙6871 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
zero_70321 小时前
HCIP 课程文字版思维导图笔记
服务器·网络·php
外滩运维专家2 小时前
Nginx 上的通配符证书 90 天到期,续签这事我是这么搞的
运维
科技新资讯2 小时前
国内AI影视制作服务商哪家口碑好
运维·人工智能·devops
IT摆渡者3 小时前
ubuntu系统网络问题
linux·运维·ubuntu
kdxiaojie3 小时前
Linux 驱动研究 —— SDIO (1)
linux·运维·笔记·学习·sdio
ZzzZZzzzZZZzzzz…4 小时前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷
BerrySen1784 小时前
一个 JDBC 参数引发的架构演进:Apache SeaTunnel 如何解决数据同步中的“定时 Flush”难题
运维·自动化·zabbix
杨_晨4 小时前
Linux查看本地环境变量的命令
linux·运维·服务器
草莓熊Lotso5 小时前
【Linux网络】从0手写Reactor反应堆(二):完善核心细节——ET非阻塞读写、分层架构与回调机制
linux·运维·服务器·网络·c++·tcp/ip·架构