Это на самом деле предел базового select(2)
системного вызова.
со страницы руководства:
An fd_set is a fixed size buffer. Executing FD_CLR() or FD_SET() with a value of fd
that is negative or is equal to or larger than FD_SETSIZE will result in
undefined behavior.
И стандартный FD_SETSIZE - 1024.
/usr/include/linux/posix_types.h:#define __FD_SETSIZE 1024
Так что это не проблема Python. Системные вызовы poll(2)
и epoll(2)
имеют гораздо больший лимит. То, что вам действительно нужно сделать, использовать объект select.epoll
(все еще в модуле select
) вместо `select.