Loading...
「ツール」は右上に移動しました。
利用したサーバー: wtserver1
1902いいね 36,746 views回再生

Основы Asyncio

В продолжение беседы о конкурентости и параллельности в Python, пришла пора посмотреть на модный молодежный asyncio

Асинхронное выполнение подходит для IO-bound задач, работает ровно 1 поток

📡Основы многопоточности в Python    • Основы многопоточности в Python  
⛓Конкурентность и параллельность    • Конкурентность и параллельность  

Плюсы:
скорость и экономия времени, вместо x + y + z = max(x, y, z)
управляемость
меньше потребление ресурсов (в сравнении с потоками)

Минусы:
"умирает" из-за одного блокирующего вызова (!)
не безразмерный, нужно понимать, что корутины не бесплатные

важные принципы:
1) корутина работает как генератор
2) async - явный флаг, что данная функция является асинхронной (корутиной)
3) await - явный флаг, что в это месте функция встает на паузу и дает работать другим, пока ждет свои данные
4) event loop - цикл событий, механизм, который отвечает за планирование и запуск корутин. Можно представить как список/очередь, из которого в вечном цикле достаются и запускаются корутины

Частые ошибки:
не использование await внутри корутины
создание корутины, но использование ее, как функции
использование внутри корутин синхронного(блокирующего) кода, в том числе IO

Читать:
https://docs.python.org/3/library/asy...

Фаулер М. "Asyncio и конкурентное программирование на Python"

Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти https://boosty.to/python_russian/donate
✔️Юмани 410011506612886

Будь первым везде и всегда, включай уведомления о новых выпусках 🔔

Смотри там где удобно🤩
✔️ https://vk.com/python_russian
✔️ https://rutube.ru/channel/24346352/
✔️ https://dzen.ru/python_russian

✔️    / pythonrussian  
✔️ https://t.me/python_russian

#Python #PythonRussian #Asyncio

コメント