epoll_wait,select和poll函數都提供超時。然而,在epoll中,它的分辨率爲1ms。選擇& ppoll是提供亞毫秒超時的唯一一個。爲什麼epoll_wait只能提供巨大的1ms超時時間?
這將意味着最好在1毫秒的時間間隔做其他的事情。在現代CPU上,我可以在1ms內完成很多其他的事情。
所以做其他事情往往小於1ms,我實際上是提供零超時(基本上禁用它)。而且我可能會在主循環的某個地方添加我自己的usleep,以阻止它咀嚼太多的CPU。
所以現在的問題是,爲什麼在毫秒的超時的時候我會想清楚有更高分辨率的超時的情況下。
本文提供了選擇(),輪詢()和epoll_wait()及其與內核相互作用的時間分辨率的詳細信息。我建議閱讀它。 http://lwn.net/Articles/296578/ – 2013-02-01 15:48:04