Как устроен модуль selectors и как он абстрагирует системные вызовы epoll, kqueue и select?

selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.

Короткий ответ

Что ответить на собеседовании

selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.

Подробный разбор

Ответ с пояснениями

selectors предоставляет единый интерфейс ожидания готовности файловых дескрипторов к чтению и записи. DefaultSelector выбирает доступную эффективную реализацию, например epoll или kqueue.

Дескриптор регистрируют через register(), интересующие события меняют через modify(), а select(timeout) возвращает готовые объекты и маски событий. Перед закрытием объект снимают с наблюдения. Модуль не читает данные сам и не делает произвольный код асинхронным: обработчик должен использовать неблокирующий I/O и учитывать частичные операции. Поддерживаемые типы дескрипторов различаются между ОС; на Windows обычно речь о сокетах.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее