epoll_wait、selectおよびpoll関数はすべてタイムアウトを提供します。しかし、epollでは、1msという大きな解像度になっています。選択サブミリ秒のタイムアウトを提供するのは、& ppollだけです。なぜepoll_waitは1msの巨大なタイムアウトしか提供しないのですか?
これは、せいぜい1ms間隔で他のことを行うことを意味します。私は現代のCPU上で1ミリ秒以内に他の多くのことを行うことができます。
1msよりも頻繁に他のことを行うには、実際にはゼロ(実際には無効にする)を指定する必要があります。そして、私は恐らくメインループのどこかに私自身のusleepを追加して、あまりにも多くのCPUを噛んでしまうのを止めるでしょう。
質問がありますが、私は、解像度がより高いタイムアウトのケースが明確にあると思うと、ミリ秒でタイムアウトが発生するのはなぜですか。
この記事では、select()、ポール()とイベントがepoll_wait()とカーネルとの相互作用のタイミング分解能に関する詳細な情報を提供します。私はそれを読むことをお勧めします。 http://lwn.net/Articles/296578/ –