小编cha*_*ang的帖子

libev观察者的数据结构

Libev使用三种数据结构来存储不同的观察者.

堆:对于按时间排序的观察者,例如ev_timerev_periodic.

链表:ev_io,ev_signal,ev_child等.

阵列:ev_prepare,ev_check,ev_async等.

毫无疑问,使用堆来存储计时器观察器.但是选择链表和数组的标准是什么?

存储ev_io观察者的数据结构似乎有点复杂.它首先是一个数组,fd其索引和数组中的元素是链接列表ev_io watcher.如果使用链表作为元素,则为数组分配空间更方便.是原因吗?

或者只是因为插入或删除操作ev_io更频繁而且ev_prepare看起来更稳定?

还是其他任何原因?

data-structures libev

4
推荐指数
1
解决办法
803
查看次数

标签 统计

data-structures ×1

libev ×1