网站建设纟金手指下拉壹陆可口可乐营销策划方案
目录
- 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[]
