I/O 多路复用机制讲解
你全力以赴的极限,搞不好只是别人的起点。
什么是多路复用?
我们一般说的I/O是指的网络I/O,多路是指多路指多个TCP连接(即 socket 或者 channel),复用指复用一个或几个线程。
就是指一个或一组线程处理多个 TCP 连接。最大优势是减少系统开销小,不必创建过多的进程/线程,也不必维护这些进程/线程。IO 多路复用的三种实现方式:select、poll、epoll。
io多路复用技术有哪些种类:
select:
操作系统提供的系统调用函数,用于等待文件描述词(普通文件、终端、伪终端、管道、FIFO、套接字及其他类型的字符型)状态的改变。 是一个轮循函数,循环询问文件节点,可设置超时时间,超时时间到了就跳过代码继续往下执行。
poll:
同select原理差不多,可以理解为改良版的select。它是对多个文件描述符进行轮询,如果某个文件描述符处于可读/可写状态,或者发生错误/异常,那么就立即返回。
epoll:
使用基于事件驱动的方式代替了顺序扫描,且fd的个数不受限制,因此性能更高。当fd就绪时,会立即回调函数。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 易语言 —— 开山篇
· 实操Deepseek接入个人知识库
· Trae初体验