В продолжение беседы о конкурентости и параллельности в 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
1 view
101
38
1 month ago 01:26:03 7
Параллельное программирование в Python // Демо-занятие курса «Python Developer»
3 months ago 00:53:25 1
Основы Asyncio
3 months ago 00:58:45 1.3K
Основы многопоточности в Python
3 months ago 00:40:30 533
Конкурентность и параллельность
4 months ago 00:59:18 14
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 10
4 months ago 00:22:06 8
Асинхронный парсинг сайтов на Python
7 months ago 01:33:44 4
Читаю КНИГУ “Asyncio и конкурентное программирование на Python“ Мэтью Фаулер / Глава 2
1 year ago 00:17:43 1
Основы асинхронности в Python #1: Введение
1 year ago 00:22:06 11.8K
Пишем асинхронный парсер Хабра
1 year ago 00:33:59 5
Пишем Telegram бот для учёта расходов с Python, Asyncio/Aiogram, SQLite и Docker
1 year ago 01:06:03 8
70 книг по IT, которые надо прочесть. Как писать хорошо, языки, тесты, БД, безопасность, soft skills
1 year ago 00:03:28 10
Тебе нужно это знать! | Операторы is и == в Python | Изучение Python с нуля
1 year ago 00:45:39 17
Основы асинхронности в Python #7_ Asyncio, async_await
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: с нуля до гуру
2 years ago 01:20:20 1
Пишем асинхронного Телеграм-бота
3 years ago 00:47:02 4
Асинхронное и многопоточное программирование. Python Advanced. Урок 3