由于poll()
和select()
的局限,2.6内核引入了event poll(epoll)
机制。虽然稍微复杂,但是epoll解决了它们共有的基本性能问题,并增加了一些新的特性。poll()
和select()
每次调用都需要所有被监听的文件描述符。内核必须遍历所有被监视的文件描述符。当这个表变得很大时,成千上百的文件描述符,每次调用时的遍历就成为了明显的瓶颈。
由于poll()
和select()
的局限,2.6内核引入了event poll(epoll)
机制。虽然稍微复杂,但是epoll解决了它们共有的基本性能问题,并增加了一些新的特性。poll()
和select()
每次调用都需要所有被监听的文件描述符。内核必须遍历所有被监视的文件描述符。当这个表变得很大时,成千上百的文件描述符,每次调用时的遍历就成为了明显的瓶颈。