首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
请你介绍一下 IO 多路复用
[问答题]
请你介绍一下 I/O 多路复用
添加笔记
求解答(0)
邀请回答
收藏(126)
分享
纠错
11个回答
添加回答
4
零offer小菜鸡
I/O多路复用指的是用一个线程来记录每个I/O流的状态来管理多个I/O流。I/O多路复用有select、poll、epoll三种实现方式。
发表于 2023-09-21 20:23:28
回复(0)
4
至今0offer选手
在单个线程中管理多个I/O的状态来管理多个I/O流
发表于 2022-07-27 11:01:17
回复(0)
3
太阳从东方升起
1、select是主动轮询1024个符号;而epoll是被数据流触发的,并且可以指定要处理的符号列表,数量不限制; 2、LT水平触发 有数据就发;ET 边缘触发,只发一次
发表于 2022-08-20 13:50:03
回复(0)
1
Dancingmad
IO多路复用的方式有select、poll、epoll。 select和poll的原理相同,都是维护了一个文件描述符的集合,在调用select和poll的时候将所有文件描述符复制到内核来轮询是否有IO事件以获取事件个数,之后再对所有文件描述符轮询一遍以处理IO事件,他们的区别是select使用线性表实现,有1024的数量限制,poll使用链表实现没有数量限制。 epoll底层使用红黑树实现,使用epoll_create在内核中创建一个eventepoll的数据结构,里面包含两个数据成员一个是需要检测的fd的信息(红黑树),一个是就绪链表(双向链表)。调用epoll_crtl可以向epoll对象中添加修改删除要监听的文件描述符以及事件。调用epoll_wait可以让内核检测就绪的事件,然后放到就绪链表中返回。
编辑于 2024-03-01 15:44:08
回复(0)
0
牛客DXS
epoll: epoll的实现原理: 1。 首先调用epoll_create生成一个eventPoll【结构体】数据,及epoll对象,它包含两各成员变量,一个用于存储fd,底层红黑树,一个用于存储发生数据传输的fd,底层双链表。 2. 其次调用epoll_ctl玩epoll对象添加文件描述符和期望的时间。 3. 调用epoll_wait() 让内核检测哪个fd发生了数据传输,将响应的fd和事件放入就绪链表,随后返回让程序作进一步操作。 epoll有两种模式 水平模式LT:在此模式中,当内核检测到某个fd发生了数据传输并通知了用户,用户没有对该fd进行IO操作,随后内核会不断的发送通知。 边缘模式ET:当内核检测到某个fd就绪,无论之后用户是否执行IO操作,内核只会发送一次【通知】,减少了重复epoll事件的通知,比LT模式效率高
编辑于 2024-04-17 10:04:44
回复(0)
0
vwei
I\O多路复用是一种使得程序能够同时监听多个文件描述符的技术,用以提高程序的性能。I\O多路复用可以在一个线程里面同时监视多个I\O流的状态来同时管理多个I\O流,一旦检测到某个文件描述符就绪,则通知程序执行对应的操作(如读写)。 I\O多路复用主要有select、poll、epoll三种系统调用方式。
编辑于 2024-04-08 19:09:55
回复(0)
0
迷人的小鲸鱼在做测评
单个线程通过io多路复用技术来监测多个io流
编辑于 2024-03-03 13:55:16
回复(0)
0
爱等华爱等华
IO多路复用可以同时监听多个事件,没有就绪事件的时候,可以去干别的,等待有就绪事件的时候,会通知你再回来。有select、poll、epoll三种方式。select会限制文件描述符的大小,有两次用户态和内核态的拷贝和两次遍历。poll使用链表改进了文件描述符的大小。epoll包含三个函数,实现监听
发表于 2023-08-09 16:35:55
回复(0)
0
惑乱星空
在单个线程中,监听多个I/O流。
发表于 2023-06-15 09:34:09
回复(0)
0
BugWriter404
epoll 红黑树,双向就绪链表
发表于 2023-02-23 09:47:23
回复(0)
0
山上的菜鸟
linux的最大文件描述符默认是1024个,所以set使用了1024作为长度。 select注册时候会将对应的位置1 。 select会对文件描述符对应的位进行修改,返回的时候文件描述符为1的才是准备就绪的事件。 所以会将原本注册但是没有发生的事情变成0,因此需要重新进行事情的注册。
编辑于 2022-09-09 16:41:35
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
上传者:
real19931
难度:
11条回答
126收藏
2252浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
阿里巴巴2015实习生笔试题
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
有20000人的就餐需求,现建了一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题