Kqueue

kqueue 是一种可扩展的事件通知接口。2000 年 7 月发布的 FreeBSD 4.1 中首次引入了 kqueue，随后也被 NetBSD、OpenBSD、macOS 等操作系统支持。

kqueue 在内核与用户空间之间充当输入输出事件的管线。因此在事件循环的迭代中，进行一次 kevent(2) 系统调用不仅可以接收未决事件，还可以修改事件过滤器。

 另见 

支持 kqueue 且与操作系统无关的库：

 libevent
 libuv

其它平台上与 kqueue 等价的库：

 Solaris、Windows、AIX：IOCP
 Linux：
 epoll 系统调用语义类似，但并不完全相同。epoll 在文件描述符可进行 I/O 操作时进行通知，而 kqueue 和 IOCP 都在请求的操作完成时进行通知。
 inotify 是 Linux 上的内核子系统，可以在文件系统发生变化时通知应用程序。

libkqueue 是在用户空间实现的 kqueue(2)，将调用翻译为操作系统原生的事件机制。

 参考资料 

Category:事件 (计算机)
Category:FreeBSD
Category:OpenBSD
Category:MacOS