Spec-Zone.ru › Python 3.14

asyncio — асинхронный ввод-вывод

Привет, мир!

import asyncio

async def main():
    print('Hello ...')
    await asyncio.sleep(1)
    print('... World!')

asyncio.run(main())

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

  • Цикл событий
  • Объекты future
  • Транспорты и протоколы
  • Политики
  • Поддержка платформ
  • Расширение

Руководства и учебные материалы

  • Указатель высокоуровневого 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API