MENU

Fun & Interesting

Основы Asyncio

Python Russian 33,684 1 year ago
Video Not Working? Fix It Now

В продолжение беседы о конкурентости и параллельности в Python, пришла пора посмотреть на модный молодежный asyncio Асинхронное выполнение подходит для IO-bound задач, работает ровно 1 поток 📡Основы многопоточности в Python https://youtu.be/tM16UeEoI-c ⛓Конкурентность и параллельность https://youtu.be/GVv7MNo_i2Y Плюсы: + скорость и экономия времени, вместо x + y + z = max(x, y, z) + управляемость + меньше потребление ресурсов (в сравнении с потоками) Минусы: - "умирает" из-за одного блокирующего вызова (!) - не безразмерный, нужно понимать, что корутины не бесплатные важные принципы: 1) корутина работает как генератор 2) async - явный флаг, что данная функция является асинхронной (корутиной) 3) await - явный флаг, что в это месте функция встает на паузу и дает работать другим, пока ждет свои данные 4) event loop - цикл событий, механизм, который отвечает за планирование и запуск корутин. Можно представить как список/очередь, из которого в вечном цикле достаются и запускаются корутины Частые ошибки: - не использование await внутри корутины - создание корутины, но использование ее, как функции - использование внутри корутин синхронного(блокирующего) кода, в том числе IO Читать: https://docs.python.org/3/library/asyncio.html#module-asyncio Фаулер М. "Asyncio и конкурентное программирование на Python" Присоединяйтесь к помощи каналу, будет интересно) ✔️Бусти https://boosty.to/python_russian/donate ✔️Юмани 410011506612886 Будь первым везде и всегда, включай уведомления о новых выпусках 🔔 Смотри там где удобно🤩 ✔️ https://vk.com/python_russian ✔️ https://rutube.ru/channel/24346352/ ✔️ https://dzen.ru/python_russian ✔️ https://www.youtube.com/c/PythonRussian ✔️ https://t.me/python_russian #Python #PythonRussian #Asyncio

Comment