libiomux
iomux-高性能异步I / O多路复用和计时器
C库最初是受perl模块IO :: Multiplex( )启发的。该库允许有效地处理多个文件描述符和计时器之间的I / O。 它支持可以在编译时选择的不同后端。 默认值为select(),但支持epoll()和kqueue()(通过在编译时分别定义HAVE_EPOLL或HAVE_QUEUE)。
单个多路复用器可以有效地处理数万个活动文件描述符,而多个多路复用器可以被不同的线程无缝使用。
使用优先级队列来实现计时器,以确保最早的计时器的O(1)提取。 插入和删除仍然是O(logN)操作,并且在使用大量计时器时应明智地执行。
文件描述符上的超时不会进入优先级队列,而是与I / O一起处理,因此(重新/取消)在托管文件描述符上设置超时是非常便宜的操作。