当前位置: 首页 > news >正文

epoll数据结构

目录

  • 1.大量的fd 集合。选择什么数据结构?
  • 2、Epoll 数据结构
    • Epitem 的定义
    • Eventpoll 的定义

1.大量的fd 集合。选择什么数据结构?

查找频率很高的数据结构
1.红黑树
2.哈希(扩容缩容)
3. b/b+tree (降低树的高度,磁盘)

2、Epoll 数据结构

Epoll 主要由两个结构体:eventpoll 与 epitem。Epitem 是每一个 IO 所对应的的事件。比如
epoll_ctl EPOLL_CTL_ADD 操作的时候,就需要创建一个 epitem。Eventpoll 是每一个 epoll 所
对应的的。比如 epoll_create 就是创建一个 eventpoll。

Epitem 的定义

在这里插入图片描述

rdlink就绪队列,
sockfd,event红黑树的kv
在这里插入图片描述

Eventpoll 的定义

在这里插入图片描述
epoll_create会生成eventpoll,rbr指向红黑树,rdlist指向就绪队列,还有控制线程安全的功能

epoll_clt来添加删除修改红黑树的节点

epol如何做线程安全?
1.红黑树–> mutex
2.就绪队列–> spinlock

epoll_wait会把就绪队列里拷贝到数据events[]

http://www.lryc.cn/news/124929.html

相关文章:

  • LINUX学习笔记_GIT操作命令
  • 第一百二十九天学习记录:数据结构与算法基础:栈和队列(中)(王卓教学视频)
  • C语言 — qsort 函数
  • 开放式耳机哪个好一点?推荐几款优秀的开放式耳机
  • vue-cli前端工程化——创建vue-cli工程 router版本的创建 目录结构 案例初步
  • Go和Java实现外观模式
  • 人工智能(一)基本概念
  • 〔AI 绘画〕Stable Diffusion 之 解决绘制多人或面部很小的人物时面部崩坏问题 篇
  • 初步认识OSI/TCP/IP一(第三十八课)
  • 英伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](2)——代码分析
  • FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  • Linux: sysctl:net: IPV4_DEVCONF_ALL ignore_routes_with_linkdown; all vs default
  • 光耦继电器:实现电气隔离的卓越选择
  • 鸿蒙开发学习笔记2——实现页面之间跳转
  • 电子商务类网站需要什么配置的服务器?
  • table 根据窗口缩放,自适应
  • 应急响应-Webshell
  • 【调整奇数偶数顺序】
  • Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
  • 2023-08-11 LeetCode每日一题(矩阵对角线元素的和)
  • Github 80 个键盘快捷键和一些搜索技巧的备忘清单
  • 神经网络基础-神经网络补充概念-08-逻辑回归中的梯度下降算法
  • npm ERR! cb.apply is not a function
  • iShot Pro for Mac 2.3.9最新中文版
  • FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX实时搜索插件
  • k8s dns 解析service异常
  • P6464 [传智杯 #2 决赛] 传送门
  • 如何通过CSS选择器选择一个元素的子元素?如何选择第一个子元素和最后一个子元素?
  • 智能家居(2)---串口通信(语音识别)控制线程封装
  • MySql主从复制1032错误(Slave_IO_Running: Yes Slave_SQL_Running: No)