当我的多线程程序运行时,抛出一个错误。我想select()必须管理文件描述符太多,但不确定。有人可以向我解释。非常感谢你。
readables,writeables,exceptional = select.select(inputs,outputs, [])
ValueError: filedescriptor out of range in select()
答案 0 :(得分:1)
问题是select()
通常对它可以管理的文件描述符有内置限制(在大多数系统上为1024)。试试poll
或epoll
,这可能会有所帮助。
另请注意,select()
使用无效的算法来管理文件描述符查找。该算法具有O(n)计算能力,epoll
具有O(1)。