epoll
linux
kqueue
2000 年 7 月发布的 FreeBSD 4.1 中首次引入了 kqueue[1],随后也被 NetBSD、OpenBSD、macOS 等操作系统支持。
libevent
一个异步事件处理软件库,以BSD许可证发布。
目前,libevent已支持以下接口/dev/poll, kqueue(2), event ports, select(2), poll(2) 和epoll(4)。
libevent的内部事件机制完全是基于所使用的接口的。因此libevent非常容易移植, 也使它的扩展性非常容易。目前,libevent已在以下操作系统中编译通过: Linux,BSD,Mac OS X,Solaris和Windows。
libevent的高明之处还在于,它把fd读写、信号、DNS、定时器甚至idle(空闲) 都抽象化成了event(事件)。
参考:
https://zhuanlan.zhihu.com/p/20315482(网络编程(三):从libevent到事件通知机制)
网友评论