Асинхронщина в Python
HTML-код
- Опубликовано: 21 сен 2024
- Александр Полищук (ООО "Код безопасности") @ Moscow Python Meetup 52
"Python - это замечательный язык программирования, но есть одна вещь, которая ограничивает нашу свободу творчества, и называется она GIL. Спикер расскажет, как можно с ним договориться и не ограничивать себя одним потоком".
Cлайды: www.moscowpytho...
Огонь!
Лучшее объяснение на пальцах
Один из немногих понятных докладов про асинхронность! Спасибо)
Человек вышел с докладом и не смог ответить на простой вопрос по теме доклада. Это жесть.
По сути как-то мало сказал
в "примере из жизни" reutrn requests.get заблокирует нахрен ваш луп, господа
Используйте aiohttp вместо. Но у него пока нет Digest-авторизации, это надо учитывать...
да, есть такое, там потом в разделе вопросов мне указали на этот недостаток, понял что сморозил глупость :)
Объясните, кто-нибудь, почему?
@@Victorius-ua Ахах, год конечно прошёл, но requests.get это блокирующая функция, такая же, как например, select. requests не умеет в асинхрон, надо использовать aiohttp .
@@agentdaun5699 спасибо за ответ, но самому дошло еще год назад, когда начал использовать asyncio :)
мне понравился доклад. Сказал что асинхронный код работает в одном процессе и в одном потоке...
а разве не так?
@@ivan2885 всё так, сказал без всякого умысла.
Сразу видно что у человека огромный педагогический стаж. (нет!)
>Асинхронный код плохо читаем и тяжело отлажевать
Как раз наоборот засчет четко определенных мест прерывания(возврата управления) в функциях, мы более точно можем сказать, что происходит.
почему такие сложности а асинком?
вроде есть, но лучше бы не было. Почему не взяли реализацию из других технологий? например те же таски в сишарпе с тредпулом.
Один из вопросов на докладе был про отмену тасков - в том же шарпе для этого есть инструмент CancellationToken
меняете ему статус и все таски куда этот токен передали - отключаются. Не вижу причин почему не взять подобную реализацию.
Хороший чистый русский порадовал.
Злата не рядом с Григорием? Не хочет отвлекать?
Новый GIL на таймаутах с 3.2 если я не ошибаюсь
я не понял про ГОРЯЧЧИЕ БУТЕРБРОТДЫ !! что за зверь такой :-J
Это когда берешь хлэб, кидаешь на него колбасу, а сверху - кусок сыра. Фигачешь это все микроволновку и ждешь пока расплавится сыр. :)
Очень слабый доклад.
У меня вопрос, а какой уровень у участников, что докладчик рассказывает такие банальные вещи? Это профессиональная ориентация?
Мне интересно, зачем такой снобизм) Кто-то хочет освежить теорию в памяти, кто-то, действительно, новичок, не разобрался с этим. Что плохого-то?
> Асинхронщина
> и называется она GIL
Но для завязанного на IO код GIL не проблема. Название и описание сбивают с толку.
>Асинхронный код плохо читаем и тяжело отлажевать
Код с потоками - тоже.
Да нормально он читается. async/await означает, что в этом месте возможно переключение контекста. Всё. А код так и остаётся линейным.
А ты уверен что GIL тебе прям таки дисковые операции отпустит?)) Вот работа с сетью и асинхронным драйвером - да. Но это не все IO. Вообще сейчас самым безгеморным методом является шедулер на процессах с корутинами. Там хоть в ногу стрельнуть сложнее, потоки для любителей детективных историй в коде
А почему бы и нет? Как и в случае с сетевыми запросами - работа со стороны питона идёт с буфером.