当前位置: 首页 > 面试题库 >

请你回答一下epoll怎么实现的?

程志新
2023-03-14
本文向大家介绍请你回答一下epoll怎么实现的?相关面试题,主要包含被问及请你回答一下epoll怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

Linux epoll机制是通过红黑树和双向链表实现的。 首先通过epoll_create()系统调用在内核中创建一个eventpoll类型的句柄,其中包括红黑树根节点和双向链表头节点。然后通过epoll_ctl()系统调用,向epoll对象的红黑树结构中添加、删除、修改感兴趣的事件,返回0标识成功,返回-1表示失败。最后通过epoll_wait()系统调用判断双向链表是否为空,如果为空则阻塞。当文件描述符状态改变,fd上的回调函数被调用,该函数将fd加入到双向链表中,此时epoll_wait函数被唤醒,返回就绪好的事件。

 类似资料:
  • 本文向大家介绍请你回答一下野指针是什么?相关面试题,主要包含被问及请你回答一下野指针是什么?时的应答技巧和注意事项,需要的朋友参考一下 野指针就是指向一个已删除的对象或者未申请访问受限内存区域的指针。

  • 本文向大家介绍请你回答一下map底层为什么用红黑树实现?相关面试题,主要包含被问及请你回答一下map底层为什么用红黑树实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、红黑树: 红黑树是一种二叉查找树,但在每个节点增加一个存储位表示节点的颜色,可以是红或黑(非红即黑)。通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其它路径长出两倍,因此,红黑树

  • 本文向大家介绍请你回答一下mongodb和redis的区别相关面试题,主要包含被问及请你回答一下mongodb和redis的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其

  • 本文向大家介绍请你回答一下fork和vfork的区别相关面试题,主要包含被问及请你回答一下fork和vfork的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: fork的基础知识: fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); 成功调用

  • 本文向大家介绍请你回答一下测试的相关流程是什么?相关面试题,主要包含被问及请你回答一下测试的相关流程是什么?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 测试最规范的过程如下 需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试 来自W模型

  • 本文向大家介绍请你回答一下为什么要有page cache,操作系统怎么设计的page cache相关面试题,主要包含被问及请你回答一下为什么要有page cache,操作系统怎么设计的page cache时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 加快从磁盘读取文件的速率。page cache中有一部分磁盘文件的缓存,因为从磁盘中读取文件比较慢,所以读取文件先去page cache中去