Spec-Zone.ru › Python 3.11

asyncio — Асинхронное ввод-вывод

Привет мир!

import asyncio

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

asyncio.run(main())

asyncio — это библиотека для написания конкурентного кода с использованием синтаксиса async/await.

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

asyncio часто идеально подходит для задач ввода-вывода и высокоуровневого структурированного сетевого кода.

asyncio предоставляет набор высокоуровневых API для:

  • выполнять Python-корутины конкуретно и полностью контролировать их выполнение;
  • выполнять сетевой ввод-вывод и IPC;
  • контролировать подпроцессы;
  • распределять задачи через очереди;
  • синхронизировать конкуретный код;

Кроме того, есть низкоуровневые API для разработчиков библиотек и фреймворков для:

  • создания и управления циклами событий, которые предоставляют асинхронные API для сети, запуска подпроцессов, обработки сигналов ОС и т.д;
  • реализации эффективных протоколов с помощью транспортов;
  • сопрягать библиотеки и код на основе обратных вызовов с синтаксисом async/await.

Вы можете поэкспериментировать с 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'

Доступность: не Emscripten, не WASI.

Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten и wasm32-wasi. См. платформы WebAssembly для получения дополнительной информации.

Справочник

Высокоуровневые API

  • Запускатели
  • Корутины и задачи
  • Потоки
  • Примитивы синхронизации
  • Подпроцессы
  • Очереди
  • Исключения

Низкоуровневые API

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

Руководства и учебные пособия

  • Индекс высокоуровневых API
  • Индекс низкоуровневых API
  • Разработка с asyncio

Примечание

Исходный код asyncio можно найти в Lib/asyncio/.

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/asyncio.html

Spec-Zone.ru

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