asyncio — асинхронный ввод-вывод
asyncio — это библиотека для написания параллельного кода с использованием синтаксиса async/await.
asyncio служит основой для множества асинхронных фреймворков Python, обеспечивающих высокопроизводительные сетевые и веб-серверы, библиотеки для подключения к базам данных, распределённые очереди задач и т. д.
asyncio часто идеально подходит для кода, ограниченного операциями ввода-вывода, а также для высокоуровневого структурированного сетевого кода.
См. также
- Концептуальный обзор asyncio
-
Объяснение основ asyncio.
asyncio предоставляет набор высокоуровневых API для:
- параллельного запуска корутин Python и полного управления их выполнением;
- выполнения сетевого ввода-вывода и межпроцессного взаимодействия;
- управления дочерними процессами;
- распределения задач с помощью очередей;
- синхронизации параллельного кода;
Для интроспекции asyncio предоставляет API и инструменты для:
- изучения графа асинхронных вызовов задач и объектов future;
- изучения задач в другом запущенном процессе Python с помощью инструментов командной строки;
Кроме того, для разработчиков библиотек и фреймворков доступны низкоуровневые API, позволяющие:
- создавать циклы событий и управлять ими (циклы событий), чтобы предоставлять асинхронные API для сетевого взаимодействия, запуска дочерних процессов, обработки сигналов ОС и т. д.;
- реализовывать эффективные протоколы с помощью транспортов;
- связывать библиотеки и код, основанные на обратных вызовах, с синтаксисом async/await.
Доступность: недоступен в WASI.
Этот модуль не работает или недоступен в WebAssembly. Подробнее см. в разделе Платформы WebAssembly.
REPL asyncio
Вы можете экспериментировать в asyncio параллельном контексте в REPL:
$ python -m asyncio asyncio REPL ... Use "await" directly instead of "asyncio.run()". Type "help", "copyright", "credits" or "license" for more information. >>> import asyncio >>> await asyncio.sleep(10, result='hello') 'hello'
Этот REPL обеспечивает ограниченную совместимость с PYTHON_BASIC_REPL. Для доступа ко всем возможностям и новейшим функциям рекомендуется использовать REPL по умолчанию.
Вызывает событие аудита cpython.run_stdin без аргументов.
Изменено в версии 3.12.5: (а также в версиях 3.11.10, 3.10.15, 3.9.20 и 3.8.20) Вызывает события аудита.
Изменено в версии 3.13: По возможности использует PyREPL; в этом случае также выполняется PYTHONSTARTUP. Вызывает события аудита.
Справочник
Высокоуровневые API
- Средства запуска
- Корутины и задачи
- Потоки
- Примитивы синхронизации
- Дочерние процессы
- Очереди
- Исключения
API для интроспекции
Низкоуровневые API
Руководства и учебные материалы
- Указатель высокоуровневого API
- Указатель низкоуровневого API
- Разработка с asyncio
- asyncio и Python со свободной многопоточностью
Примечание
Исходный код asyncio находится в Lib/asyncio/.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/asyncio.html