Основы асинхронности в Python #7: Asyncio, async/await

preview_player
Показать описание
Мои курсы:
Boosty:

Patreon:

На двух примерах:
2. Второй пример - скачивание 10 файлов. Первый вариант полностью синхронный, второй вариант - асинхронный с помощью asyncio, async/await и библиотеки aiohttp.

Для второго примера придется установить aiohttp:
pip install aiohttp
(или pip3 install aiohttp)

*** ИСХОДНЫЙ КОД ***
Основных проектов доступен в Patreon:
***

🔷 Для донатов. Всегда очень признателен за это:

Весь плейлист:

Основы асинхронности в Python #1: Введение

Основы асинхронности в Python #2: Асинхронность с простыми функциями. Событийный цикл.

Основы асинхронности в Python #3: Асинхронность на колбэках.

Основы асинхронности в Python #4: Генераторы и событийный цикл Round Robin

Основы асинхронности в Python #5: Асинхронность на генераторах

Основы асинхронности в Python #6: Корутины и yield from

Основы асинхронности в Python #7: Asyncio, async/await
Рекомендации по теме
Комментарии
Автор

Страдал также как и вы в попытке перестроить свой мозг и привычку думать синхронно и вот что помогло именно мне: открываете пайчарм, пишите асинхронные примеры Олега или выдумываете свои, создаёте точку входа main и прям там сразу ставите дебаггер в паузу. А после неспешна и по шагам смотрите как, что и в какой последовательности выполняется. И сразу резко все становится понятно, а работа async/await прозрачна. Await это лишь точки в которых event loop бросает выполнение скрипта на некоторое время и бежит обслуживать следующий скрипт в очереди. И все. Как только второй скрипт спотыкается об await, event loop бежит обслуживать первого, если тот готов. И так до конца.

artemchege
Автор

Спасибо Олегу за прекрасный курс, многое приоткрылось из под ширмы. Приколько знать, как все это работает с минимальным уровнем абстракций. Автору выражаю большую благодарность за потраченное время.❤️

vlad_gnom
Автор

На win10 столкнулся с двумя ошибками(скорее особенностями).
1. Программа заканчивается с ошибкой event loop is closed. Лечится установкой параметра asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()), перед вызовом asyncio.run(main(2))
2. Сохраняется всего 1-2 файла. Проблема в особенности получения времени в Windows. Файлы, тупо, называются одним именем и перезаписывают друг друга. Лечится иным способом именования.
По поводу курса - ОГОНЬ!!! Олег объясняет как боженька) Жаль пропал человек(((

it_is_muchomor
Автор

Как же классно Олег объясняешь! От души доначу знаю что помощь твоя не оценима. Спасибо

igorkulibaba
Автор

Олег, курс огонь, спасибо огрменное!

Тем кто досмотрел до этого видео и ничего не понял сходу (как я при первом подходе):
- Начать смотреть цикл видео с самого начала
- Если повторять за видео, а ещё лучше - ставить на паузу и пытаться самому написать код, а потом смотреть дальше, то всё становится понятно.
Я прям почувствовал, как преисполнился в познании, после того как понял механизм работы yield from (await) =)
- На предыдущих видео дебажить код по строкам тоже очень полезно, особенно, если вы какие-то свои дополнительные примеры придумываете (ответить клиенту что-нибудь сразу после accept-а, например)
- Если сложно - не сдавайтесь! Понимание придёт со временем =)

P.S. Cправедливости ради, request на сессиях тоже работает быстрее, чем обычный get (примерно в два раза), но медленнее чем асинхронный код)

makesomepeace
Автор

Не досчитался 2ух уроков:
1) Реализовать часть функционала asyncio по превращению функции в корутину
2) Дописать сервер с сокетами с async/await

Но в целом серия уроков дала ОООООООЧЕНЬ сильный старт в асинхронности, думаю до этих пунктов дойду самостоятельно. Автору огромное спасибо! Даже в 22 году инфа актуальна)

peskovdev
Автор

Господи, как же обалденно. Хочу, чтобы все учебники по Питону были такими.

trankov
Автор

Олег, спасибо за еще одну прекрасную серию!
В будущем интересно было бы послушать вас про функциональное программирование на python

benyomin
Автор

Спасибо. Олег Молчанов это лучшее что есть по питону в русском ютубе.

figaro
Автор

Отличные, замечательные уроки. Олег, спасибо за ваш труд. Очень полезный контент.

raferi
Автор

спустя 2 года наткнулся на этот плейлист и теперь благодаря нему разобрался во всём концепте async / await, что они из себя представляют и что такое event loop, день прошёл не зря

suzuyah
Автор

Большое спасибо за эту отличную серию видеоуроков!

jgbbmug
Автор

Большое спасибо. Самое лучшее объяснение асинхронности Python которое я увидел. Особенно понравилось, что объяснение началось с азов. Больше узнал и понял про функции генераторы. Последние примеры тоже огонь! С удовольствием задоначу.

gdltoxm
Автор

Огромное спасибо за данное видео, очень много материала в интернете с неприменимыми к жизни примерами, благодаря вам наконец смог использовать asyncio

bfymssj
Автор

Очень, очень доходчиво. Спасибо, Олег Молчанов. Не знаю, занимаетесь ли преподаванием сейчас, но Вы, сделали очень большое и полезное дело. На мой взгляд - лучшая подача материала, которую я встречал.

antistress_pro
Автор

Спустя год вернулся к этому циклу видосов. В первый раз не осознал, слишком поверхностное было понимание. Сейчас смотрел, осознавал, имплементировал все примеры самостоятельно. И вот теперь пришло понимание. Спасибо, Олег. Как всегда очень ценный контент. Надеюсь, что будешь потихоньку продолжать раскрывать непростые и нужные темы.

sergeyshevtsov
Автор

Потрясающе! Олег, было бы ещё очень интересно послушать от Вас про многопоточность / мультипроцессность / асинхронность, в плане где и что уместно применять. Наверняка у каждой схемы есть какие-то свои побочки на память, загрузку ЦП и т.д.

yodapunishes
Автор

Спасибо. Очень хорошо объясняете. Приятно учиться и все понятно!

Michael
Автор

Спасибо за уроки. Ждем следующих. Очень познавательно.

aidarfachrutdinov
Автор

Воу, какая поставленная речь, какой прекрасный гайд и не так, как другие рассказывают ни то ни сё, воду разливают, просто прекрасно. Видно, что у автора огромный опыт за плечами, однозначно лайк👍

atset