Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: selectors, epoll

Как selectors связан с epoll?

Этот вопрос проверяет понимание низкоуровневых механизмов асинхронного ввода-вывода в Python.

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

Модуль selectors — это высокоуровневая обёртка над системными механизмами ожидания событий. На Linux он использует epoll. Программист работает с единым API, не думая о деталях платформы. selectors позволяет отслеживать готовность сокетов и файлов к операциям. Это основа для event loop и асинхронности.

Длинный ответ

Асинхронность в Python строится поверх механизмов, которые предоставляет операционная система.

Что такое epoll

epoll — это Linux-механизм, который позволяет эффективно ждать события от большого количества файловых дескрипторов.

Он решает проблему:

  • не опрашивать сокеты по кругу

  • не блокировать поток

  • масштабироваться на тысячи соединений

Программе сообщают: «дескриптор готов к чтению или записи».

Роль selectors

selectors — это стандартный Python-модуль, который предоставляет единый интерфейс для разных ОС.

Он:

  • автоматически выбирает лучший механизм (epoll, kqueue, poll)

  • скрывает системные различия

  • работает с файловыми дескрипторами и сокетами

Пример использования:

import selectors
import socket

sel = selectors.DefaultSelector()
sock = socket.socket()
sock.setblocking(False)

sel.register(sock, selectors.EVENT_READ)

events = sel.select(timeout=1)
# здесь можно обработать готовые сокеты

Как selectors использует epoll

На Linux DefaultSelector внутри создаёт epoll.
Когда вызывается select():

  • управление передаётся ядру

  • поток «засыпает»

  • ядро будит его, когда появляется событие

Краткий вывод

selectors — это удобная абстракция над epoll и похожими механизмами. Он позволяет писать переносимый асинхронный код, не завися от конкретной ОС.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • Python

    Python

Ключевые слова

#selectors

#epoll

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.