多路复用器_超详细的I/O多路复用概念、常用I/O模型、系统调用等介绍

本文详细介绍了I/O多路复用的概念,如select、poll和epoll系统调用,以及它们在处理多个网络连接请求时的优势。I/O多路复用允许一个或少量线程处理多个连接,减少了系统资源的消耗。通过对比,阐述了select在文件描述符数量有限、轮询效率低的问题,poll的无文件描述符数量限制但仍有轮询问题,而epoll通过回调机制和就绪链表提高了效率。最后,讨论了阻塞与非阻塞I/O的区别,强调了I/O复用在高并发场景下的性能优势。
摘要由CSDN通过智能技术生成

概述

当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命令行。我们先等待哪个事件呢?没有哪个选择是理想的。如果在acceptor中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/O事件发生后,才将控制返回给应用程序。 --《UNIX网络编程》

mysql线程池,就是I/O多路复用的体现。

9ff2e0faaa5476b6c8bc92c49fe7d3d9.png
参考:https://blog.csdn.net/wangxindong11/article/details/78591308

一、I/O多路复用概述

I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。

c9c568e708968bf478d9df0d9f4b1f68.png

多路复用的本质是同步非阻塞I/O,多路复用的优势并不是单个连接处理的更快,而是在于能处理更多的连接。

I/O编程过程中,需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。

I/O多路复用技术通过把多个I/O的阻塞复用到同一个select阻塞上,一个进程监视多个描述符,一旦某个描述符就位, 能够通知程序进行读写操作。因为多路复用本质上是同步I/O&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值