Если вас заинтересовало использование функции select, то, вероятно, вам будет интересно обратить внимание на модуль asyncore.py из стандартной библиотеки Python. Он реализует модель обратного вызова, основанную на классах, в которой обратные вызовы для ввода и вывода переадресуются методам класса, уже реализованным циклом событий select. Таким образом, он позволяет строить серверы без потоков выполнения и ветвлений и является альтернативой на основе вызова select рассматривавшемуся в предыдущих разделах модулю socketserver, использующему потоки выполнения и ветвление. Как и для любых других серверов этого типа, модуль asyncore лучше всего использовать в ситуациях, когда обслуживание клиента занимает короткий промежуток времени, то есть когда основная работа связана с выполнением операций ввода-вывода, а не с вычислениями, так как в последнем случае необходимо использовать потоки или ветвление. Подробное описание и примеры использования этого модуля вы найдете в руководстве по стандартной библиотеке Python.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011