This document is for an old version of Python that is no longer supported. You should upgrade, and read the Python documentation for the current stable release.

# Індекс API високого рівня

На цій сторінці перераховано всі асинхронні API високого рівня з підтримкою функції очікування.

## завдання

Утиліти для запуску асинхронних програм, створення завдань і очікування кількох речей із тайм-аутом.

`run()` | Створіть цикл подій, запустіть співпрограму, закрийте цикл.
`create_task()` | Start an asyncio Task.
`чекати` `sleep()` | Поспати кілька секунд.
`чекати` `gather()` | Плануйте та чекайте подій одночасно.
`очікувати` `wait_for()` | Запустити з тайм-аутом.
`чекати` `shield()` | Щит від скасування.
`чекати` `wait()` | Монітор для завершення.
`поточне_завдання()` | Повернути поточне завдання.
`усі_завдання()` | Return all tasks for an event loop.
`Task` | Об’єкт завдання.
`до_потоку()` | Asychronously run a function in a separate OS thread.
`run_coroutine_threadsafe()` | Заплануйте співпрограму з іншого потоку ОС.
`for in` `as_completed()` | Контроль завершення за допомогою циклу `for`.

Приклади

- Використання asyncio.gather() для паралельного запуску.

- Використання asyncio.wait_for() для застосування тайм-ауту.

- Скасування.

- Використання asyncio.sleep().

- Дивіться також головну сторінку документації завдань.

## Черги

Черги слід використовувати для розподілу роботи між декількома асинхронними завданнями, впровадження пулів підключень і шаблонів pub/sub.

`Queue` | Черга FIFO.
`PriorityQueue` | Пріоритетна черга.
`LifoQueue` | Черга LIFO.

Приклади

- Використання asyncio.Queue для розподілу робочого навантаження між кількома завданнями.

- Дивіться також сторінку документації про черги.

## Підпроцеси

Утиліти для створення підпроцесів і виконання команд оболонки.

`чекати` `create_subprocess_exec()` | Створіть підпроцес.
`чекати` `create_subprocess_shell()` | Виконайте команду оболонки.

Приклади

- Виконання команди оболонки.

- Дивіться також документацію API підпроцесів.

## Потоки

API високого рівня для роботи з мережевим вводом-виводом.

`чекати` `open_connection()` | Встановіть з’єднання TCP.
`чекати` `open_unix_connection()` | Встановіть підключення через сокет Unix.
`чекати` `start_server()` | Запустіть сервер TCP.
`чекати` `start_unix_server()` | Запустіть сокет-сервер Unix.
`StreamReader` | Високорівневий об’єкт async/wait для отримання мережевих даних.
`StreamWriter` | Високорівневий об’єкт async/await для надсилання мережевих даних.

Приклади

- Приклад TCP-клієнта.

- Дивіться також документацію streams APIs.

## Синхронізація

Примітиви потокової синхронізації, які можна використовувати в Завданнях.

`Lock` | Блокування м’ютексу.
`Event` | Об’єкт події.
`Condition` | Об’єкт умови.
`Semaphore` | Семафор.
`BoundedSemaphore` | Обмежений семафор.

Приклади

- Використання asyncio.Event.

- Дивіться також документацію asyncio примітивів синхронізації.

## Винятки

`asyncio.TimeoutError` | Raised on timeout by functions like `wait_for()`. Keep in mind that `asyncio.TimeoutError` is unrelated to the built-in `TimeoutError` exception.
`asyncio.CancelledError` | Піднімається, коли завдання скасовано. Дивіться також `Task.cancel()`.

Приклади

- Обробка CancelledError для запуску коду запиту на скасування.

- Дивіться також повний список специфічних винятків asyncio.