selec和poll的區別

小懿同学發表於2024-06-10

selec和poll的區別

select:

  • 檔案描述符數量限制select 通常有檔案描述符數量的限制,這取決於系統和配置,例如在Linux中預設限制為1024。
  • 效率select 在處理大量檔案描述符時效率較低,因為它需要複製整個檔案描述符集合到核心空間。
  • 返回值select 返回就緒的檔案描述符數量,需要程式遍歷整個檔案描述符集合來確定哪些檔案描述符就緒。
  • 超時select 使用 timeval 結構體來指定超時時間,如果超時則返回 0。

poll:

  • 檔案描述符數量限制poll 沒有對檔案描述符數量的硬性限制,理論上可以處理更多的檔案描述符。
  • 效率poll 透過使用一個單獨的結構體陣列來指定檔案描述符,避免了 select 中的複製操作,提高了效率。
  • 返回值poll 返回就緒的檔案描述符數量,同樣需要程式遍歷整個檔案描述符集合來確定哪些檔案描述符就緒。
  • 超時poll 使用一個單獨的引數來指定超時時間,如果超時則返回 0。

相關文章