Поддержка платформы

Модуль asyncio разработан для переносимости, но некоторые платформы имеют тонкие различия и ограничения, связанные с базовой архитектурой и возможностями платформ.

Все платформы

Windows

Исходный код: Lib/asyncio/proactor_events.py, Lib/asyncio/windows_events.py, Lib/asyncio/windows_utils.py


Изменено в версии 3.8: В Windows цикл событий ProactorEventLoop теперь используется по умолчанию.

Все циклы событий в Windows не поддерживают следующие методы:

SelectorEventLoop имеет следующие ограничения:

ProactorEventLoop имеет следующие ограничения:

Разрешение монотонных часов в Windows обычно составляет около 15,6 мс. Наилучшее разрешение составляет 0,5 мс. Разрешение зависит от аппаратного обеспечения (наличие HPET) и от конфигурации Windows.

Поддержка подпроцессов в Windows

В Windows стандартный цикл событий ProactorEventLoop поддерживает подпроцессы, а SelectorEventLoop - нет.

Функция policy.set_child_watcher() также не поддерживается, поскольку ProactorEventLoop имеет другой механизм наблюдения за дочерними процессами.

macOS

Современные версии macOS полностью поддерживаются.

macOS <= 10.8

В macOS 10.6, 10.7 и 10.8 цикл событий по умолчанию использует selectors.KqueueSelector, который не поддерживает символьные устройства в этих версиях. Можно вручную настроить SelectorEventLoop на использование SelectSelector или PollSelector для поддержки символьных устройств на этих старых версиях macOS. Пример:

import asyncio
import selectors

selector = selectors.SelectSelector()
loop = asyncio.SelectorEventLoop(selector)
asyncio.set_event_loop(loop)
Вернуться на верх