selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.
Как устроен модуль selectors и как он абстрагирует системные вызовы epoll, kqueue и select?
selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.
Дескриптор регистрируют через register(), интересующие события меняют через modify(), а select(timeout) возвращает готовые объекты и маски событий. Перед закрытием объект снимают с наблюдения. Модуль не читает данные сам и не делает произвольный код асинхронным: обработчик должен использовать неблокирующий I/O и учитывать частичные операции. Поддерживаемые типы дескрипторов различаются между ОС; на Windows обычно речь о сокетах.
Источник: docs.python.org.