异步事件的 IO 复用处理机制

@2010-07-08 新版功能: 创建

事件驱动模型采用 IO 复用(select, poll, epoll, ...)时往往也需要处理异步事 件(一般通过信号);异步 IO 可以采用信号通知机制;有些事件处理模型采用 pipe 来 实现事件的通知。

Linux 2.6 提供了几个新的系统调用可以让异步事件处理通过 IO 复用机制来处理, 分别为:

  • eventfd (>=2.6.22)
  • signalfd (>=2.6.22)
  • timerfd_create (>=2.6.25)

其中 eventfd 可以取代 pipe ,节约一个 fd ;signalfd 和 timerfd_create 可以分别让信号和定时器事件通过 IO 复用来处理。