# IO-多路复用
本项目包括利用多线程、select、poll以及epoll实现的并发处理连接请求
**程序使用演示:**
- **多线程程序的使用**
![pthread](E:\projects\select-poll-epoll\picture\pthread.png)
- **select程序使用**
![select](E:\projects\select-poll-epoll\picture\select.png)
- **poll程序使用**
![poll](E:\projects\select-poll-epoll\picture\poll.png)
- **epoll程序的使用**
![epoll](E:\projects\select-poll-epoll\picture\epoll.png)
没有合适的资源?快使用搜索试试~ 我知道了~
本项目包括利用多线程、select、poll以及epoll实现的并发处理连接请求
共9个文件
c:4个
png:4个
md:1个
需积分: 30 4 下载量 99 浏览量
2022-04-21
20:52:44
上传
评论 1
收藏 53KB ZIP 举报
温馨提示
服务器与客户端建立连接需要使用到一些接口,包括但不限于socket、bind、listen、accept.高并发编程会有一些服务器模型,例如reactor或proactor。这两类都要使用到IO多路复用,O多路复用是指单个进程/线程就可以同时处理多个IO请求。有三个方式select、poll、epoll。 select:将文件描述符放入一个集合中,调用select时,将这个集合从用户空间拷贝到内核空间(缺点:每次都要复制,开销大),由内核根据就绪状态修改该集合的内容。 poll:和select几乎没有区别,区别在于文件描述符的存储方式不同,poll采用链表的方式存储,没有最大存储数量的限制; epollepoll底层通过红黑树来描述,并维护一个ready list,将事件表中已经就绪的事件添加到这里,在使用epoll_wait调用时,仅观察这个list中有没有数据即可。
资源详情
资源评论
资源推荐
收起资源包目录
select-poll-epoll.zip (9个子文件)
select-poll-epoll
epoll_main.c 3KB
picture
select.png 17KB
pthread.png 9KB
poll.png 12KB
epoll.png 13KB
select_main.c 4KB
poll_main.c 3KB
README.md 516B
pthread_main.c 2KB
共 9 条
- 1
Aries_Ro
- 粉丝: 882
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0