# `asyncio` — Asynchronous I/O

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

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

asyncio часто ідеально підходить для високорівневого структурованого мережевого коду.

asyncio пропонує набір високорівневого API для:

- запускати співпрограми Python одночасно та мати повний контроль над їх виконанням;

- виконувати мережевий IO та IPC;

- керування підпроцесами;

- розподіляти завдання через черги;

- синхронізувати конкурентний код;

Також існують низькорівневі API для розробників бібліотек і фреймворків, щоб:

- create and manage event loops, which provide asynchronous APIs for networking, running subprocesses, handling OS signals, etc;

- реалізувати ефективні протоколи за допомогою transports;

- bridge бібліотеки зворотного виклику та код із синтаксисом async/await.

Availability: not WASI.

This module does not work or is not available on WebAssembly. See WebAssembly platforms for more information.

asyncio REPL

You can experiment with an `asyncio` concurrent context in the 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'

Викликає подію аудиту `cpython.run_stdin` без аргументів.

Змінено в версії 3.12.5: (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events.

Змінено в версії 3.13: Uses PyREPL if possible, in which case `PYTHONSTARTUP` is also executed. Emits audit events.

Посилання

API високого рівня

- Runners
- Співпрограми та завдання
- Потоки
- Примітиви синхронізації
- Підпроцеси
- Черги
- Винятки

Низькорівневі API

- Цикл подій
- Ф’ючерси
- Транспорт і протоколи
- політики
- Підтримка платформи
- Extending

Посібники та підручники

- Індекс API високого рівня
- Індекс API низького рівня
- Розробка з asyncio

Примітка

Вихідний код для asyncio можна знайти в Lib/asyncio/.