2

当我的多线程程序运行时,会引发错误。我想select()管理文件描述符太多了,但不确定。有人可以为我解释一下吗?

readables,writeables,exceptional = select.select(inputs,outputs, [])
ValueError: filedescriptor out of range in select()
4

1 回答 1

3

问题是它select()通常对它可以管理的文件描述符有一个内置限制(在大多数系统上为 1024)。尝试pollor epoll,这可能会有所帮助。

另请注意,select()使用低效的算法来管理文件描述符查找。该算法具有 O(n) 计算复杂度,而epoll具有 O(1)。

于 2012-08-15T19:03:15.460 回答