В продолжение беседы о конкурентости и параллельности в 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“
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #Asyncio
7 views
3400
1471
5 months ago 00:59:18 11
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 10
5 months ago 00:22:06 8
Асинхронный парсинг сайтов на Python
8 months ago 01:33:44 4
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 2
8 months ago 00:53:25 1
Основы Asyncio
1 year ago 00:17:43 1
Основы асинхронности в Python #1: Введение
1 year ago 00:40:31 3
Конкурентность и параллельность
1 year ago 00:33:59 5
Пишем Telegram бот для учёта расходов с Python, Asyncio/Aiogram, SQLite и Docker
1 year ago 01:06:03 5
70 книг по IT, которые надо прочесть. Как писать хорошо, языки, тесты, БД, безопасность, soft skills
1 year ago 00:03:28 10
Тебе нужно это знать! | Операторы is и == в Python | Изучение Python с нуля
1 year ago 00:45:40 1
Основы асинхронности в Python #7: Asyncio, async/await
1 year ago 00:19:44 4
Особенности () в асинхронном Python. Как работает таймаут для корутины
2 years ago 00:09:45 1
Python: с нуля до гуруtan video
2 years ago 01:20:20 1
Пишем асинхронного Телеграм-бота
3 years ago 00:47:02 4
Асинхронное и многопоточное программирование. Python Advanced. Урок 3
3 years ago 00:23:08 1
Python Starter. Урок 5. Функции (часть 1).
3 years ago 00:11:26 1
Python Starter. Урок 7. Списки.
3 years ago 00:23:07 1
Python Starter. Урок 6. Функции (часть 2).
3 years ago 00:21:07 1
Python Starter. Урок 3. Условные конструкции.
3 years ago 00:36:47 1
Python Starter. Урок 2. Переменные и типы данных.
3 years ago 01:19:16 7
Python Starter. Урок 1. Введение в Python.
3 years ago 00:21:50 1
Python Starter. Урок 4. Циклические конструкции.
3 years ago 00:51:51 1
Как создать асинхронный сервер на Python. Интенсив для Python-разработчиков
4 years ago 00:21:16 3
Python Essential. Урок 5. Последовательности в Python
4 years ago 00:21:16 2
Python Essential. Урок 9. Элементы функционального программирования в Python