В продолжение беседы о конкурентости и параллельности в Python, пришла пора посмотреть на модный молодежный asyncio
Асинхронное выполнение подходит для IO-bound задач, работает ровно 1 поток
Плюсы:
скорость и экономия времени, вместо x y z = max(x, y, z)
управляемость
меньше потребление ресурсов (в сравнении с потоками)
Минусы:
- “умирает“ из-за одного блокирующего вызова (!)
- не безразмерный, нужно понимать, что корутины не бесплатные
важные принципы:
1) корутина работает как генератор
2) async - явный флаг, что данная функция является асинхронной (корутиной)
3) await - явный флаг, что в это месте функция встает на паузу и дает работать другим, пока ждет свои данные
4) event loop - цикл событий, механизм, который отвечает за планирование и запуск корутин. Можно представить как список/очередь, из которого в вечном цикле достаются и запускаются корутины
Частые ошибки:
- не использование await внутри корутины
- создание корутины, но использование ее, как функции
- использование внутри корутин синхронного(блокирующего) кода, в том числе IO
Читать:
#module-asyncio
Фаулер М. “Asyncio и конкурентное программирование на Python“
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти
✔️Юмани 410011506612886
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
Смотри там где удобно🤩
✔️
✔️
✔️
✔️
✔️
✔️
#Python #PythonRussian #Asyncio
1 view
654
257
5 months ago 00:53:24 6.9K
Основы Asyncio
3 years ago 00:45:40 25
Основы асинхронности в Python #7: Asyncio, async/await
1 year ago 00:45:39 40
Основы асинхронности в Python #7_ Asyncio, async_await
4 years ago 00:45:39 10
Основы асинхронности в Python #7 - Asyncio, async_await
5 months ago 00:58:45 1.7K
Основы многопоточности в Python
3 years ago 00:33:59 16
Пишем Telegram бот для учёта расходов с Python, Asyncio/Aiogram, SQLite и Docker
6 months ago 00:59:18 15
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 10
3 years ago 00:17:43 10
Основы асинхронности в Python #1: Введение
12 months ago 01:33:44 22
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 2
2 years ago 00:19:44 4
Особенности () в асинхронном Python. Как работает таймаут для корутины
1 year ago 00:22:06 11.9K
Пишем асинхронный парсер Хабра
5 months ago 00:40:30 629
Конкурентность и параллельность
9 years ago 00:21:16 120
Урок 7. Модули в Python
9 years ago 00:21:16 202
Урок 3. Исключения в Python
6 years ago 01:58:10 9
Урок 1. Введение в ООП Python
9 years ago 00:21:16 154
Урок 8. Ввод и вывод в Python
9 years ago 00:21:16 315
Урок 2. Наследование, полиморфизм в Python
9 years ago 00:21:16 98
Урок 6. Множества и отображения в Python
1 year ago 00:22:06 14
Асинхронный парсинг сайтов на Python
9 years ago 00:21:16 117
Урок 5. Последовательности в Python
9 years ago 00:21:16 194
Урок 9. Элементы функционального программирования в Python
9 years ago 00:21:16 201
Урок 4. Итераторы и генераторы в Python
4 years ago 00:47:02 13
Асинхронное и многопоточное программирование. Python Advanced. Урок 3