Linux多路复用之select方案

本文介绍了Linux中的多路复用技术,尤其是select方法。内容包括select的工作过程、方法调用、文件集合操作,以及其在处理大量文件描述符时的优缺点。文章以Ubuntu为平台,探讨了select.h头文件,并提供了Linux内核3.7.10版本的部分源码分析。
摘要由CSDN通过智能技术生成

1 缘起

一直好奇Redis单线程高性能读写,在搜索的过程中,发现Redis使用了多路复用技术,
因此,开始学习多路复用,但是,我在想多路复用是Redis独家的技术吗?
然后查了一下Linux有没有相关技术,发现Linux确实有多路复用技术。
看到这里,发现,多路复用涉及到内核空间与用户空间数据交互,
已经到了内核层面,着实佩服Redis的作者,计算机知识是多么渊博。
于是我决定从Linux的多路复用入手,通过源码研究多路复用的技术。
文末只附了select.h的头文件源码。select.c的源文件太长了,有兴趣可以下载Linux内核源码查看。
过程中发现,select和poll方式是最初的多路复用实现方案,由于内容较多,
这次只研究了select方式。也是一知半解,还需继续理解。

何为多路复用?
多路复用是一种IO调用解决方案,有三种方式:select、poll和epoll。
用于解决进程或线程阻塞IO系统调用问题。
多路复用以文件描述符为载体,通过监控多个描述符,当描述符就绪时(可读、可写),通知程序进行读写操作。
即使单线程,亦可以处理多个IO任务,只是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值