Сообщить об ошибке.

Модуль select в Python, отслеживание операций ввода/вывода

Доступ к функциям ОС select(), poll() и epoll()

Модуль select обеспечивает доступ к функциям select.select() и select.poll(), которые доступны в большинстве операционных систем, а так же:

  • select.epoll(), доступный в Linux 2.5+,
  • select.devpoll(), доступный в Solaris и производных,
  • select.kqueue(), доступный в большинстве BSD.

Функции select.devpoll() и select.kqueue() не будут разбираться в этом материале.

Обратите внимание, что в Windows модуль select работает только для сокетов! В других операционных системах он также работает для других типов файлов (в частности, в Unix он работает на каналах). Модуль не может быть использован для обычных файлов, для определения, изменился ли файл с момента его последнего чтения.

Примечание. Модуль selectors обеспечивает высокоуровневое и эффективное мультиплексирование ввода-вывода, построенное на примитивах модуля select. Пользователям рекомендуется использовать модуль selectors, который автоматически выбирает для использования наиболее подходящие примитивы уровня ОС.


Функция select() модуля select в Python

Функция select() модуля select представляет простой интерфейс для системного вызова Unix select(). Подробнее о системном вызове Unix select() можно посмотреть командой терминала $ man select. В Windows, функция модуля select.select() работает ТОЛЬКО с сокетами, файловые объекты недопустимы!

Функция epoll() модуля select в Python

Функция epoll() модуля select возвращает объект пограничного опроса Epoll, который можно использовать как интерфейс Edge или Level Triggered для событий ввода-вывода. Объекты Epoll поддерживают протокол управления контекстом.

Функция poll() модуля select в Python

Функция poll() модуля select возвращает объект опроса Poll, который поддерживает регистрацию и отмену регистрации файловых дескрипторов, а затем опрос их на предмет событий ввода-вывода. Вызов операционной системы poll(), обеспечивает лучшую масштабируемость для сетевых серверов.