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

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

## завдання

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

`run()` | Створіть цикл подій, запустіть співпрограму, закрийте цикл.
`Runner` | A context manager that simplifies multiple async function calls.
`Task` | Об’єкт завдання.
`TaskGroup` | A context manager that holds a group of tasks. Provides a convenient and reliable way to wait for all tasks in the group to finish.
`create_task()` | Start an asyncio Task, then returns it.
`поточне_завдання()` | Повернути поточне завдання.
`усі_завдання()` | Return all tasks that are not yet finished for an event loop.
`чекати` `sleep()` | Поспати кілька секунд.
`чекати` `gather()` | Плануйте та чекайте подій одночасно.
`очікувати` `wait_for()` | Запустити з тайм-аутом.
`чекати` `shield()` | Щит від скасування.
`чекати` `wait()` | Монітор для завершення.
`timeout()` | Run with a timeout. Useful in cases when `wait_for` is not suitable.
`до_потоку()` | Асинхронний запуск функції в окремому потоці ОС.
`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` | Обмежений семафор.
`Barrier` | A barrier object.

Приклади

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

- Using asyncio.Barrier.

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

## Винятки

`asyncio.CancelledError` | Піднімається, коли завдання скасовано. Дивіться також `Task.cancel()`.
`asyncio.BrokenBarrierError` | Raised when a Barrier is broken. See also `Barrier.wait()`.

Приклади

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

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