當用epoll監聽accpet的時候,若是線程打開的文件描述符數量已經達到上限。html
當有新的鏈接到來的時候,epoll被喚醒,accpet的返回值爲EMFILE。算法
若是不處理EMFILE,那麼下一輪epoll_wait,會被繼續喚醒,造成相似輪詢的情形。線程
解決方法爲:htm
方法6,存在競爭的狀況。(是在沒想出來,爲何會競爭,線程間的文件描述符,也不共享。)多是信號中打開文件?blog
若是使用方法4,那麼須要配合一個自定的文件描述符上限,一個原子變量示打開的文件描述符,超過上限,accept之後,直接關閉。進程
方法7,定時踢掉沒有數據的鏈接,參照:定時踢掉空閒鏈接get