Ответ
Ответ не найден
Ответ 18+ 🔞
Ага, вот и я, сижу, думаю, как же объяснить про эти ваши async и await в Python, чтобы не сойти с ума. Ну, представь себе, блядь, обычную функцию — она как послушный солдат: вызвали, он отпахал и сразу результат в руки. А асинхронная — это как тот самый Герасим из рассказа, здоровый мужик, но немой. Стоит, молчит, силы копит, и пока он там своё «му-му» делает, другие-то могут делами заниматься!
Вот смотри, обычный код — это очередь в одну кассу в совке. Все стоят, один покупает тушёнку, все ждут, пиздец. А асинхронность — это супермаркет с кучей касс. Пока один товар сканируют, другой уже карточку прикладывает, третий пакет собирает. Все делают вид, что работают одновременно, хотя касса-то одна на всех — это наш главный цикл событий, ёпта.
import asyncio
async def make_tea():
print("Ставлю чайник...")
await asyncio.sleep(2) # Чайник греется
print("Чайник вскипел!")
return "Чай готов"
Видишь эту async перед def? Это как табличка «я — тот самый Герасим, я буду молчать и ждать». А await — это момент, когда он говорит «му-му» и замирает, ждёт, пока чайник закипит. Но самое охуенное — пока он ждёт, другие такие же Герасимы могут тоже свои дела делать!
А если написать просто time.sleep(2) — всё, приехали. Весь мир встал, блядь, на два секунды, как вкопанный. Ни тебе печеньку достать, ни телевизор включить. Задолбаешься ждать.
Вот и получается, что асинхронность — это не про то, чтобы всё делать одновременно (это уже многопоточность, другая песня, там свои грабли). Это про то, чтобы не тратить время, пока какая-то хуйня ждёт ответа из сети, читает файл или, там, чайник греет. Пока одна корутина (это эти async функции) «спит» на await, другая может работать. И так по кругу, пока все не сделают свои дела. Эффективность, блядь, овердохуищная!
Короче, если коротко: async — это обещание, что функция умеет говорить «стоп, я подожду», а await — это команда «стоп, я жду вот эту конкретную хуйню». А asyncio.run() — это тот самый надзиратель, который всех этих Герасимов собирает и говорит: «Ну что, мужики, давайте, работайте, но по очереди, как только кто-то заснул — следующий!».
Понял? Если нет — ничего страшного. Первый раз всегда пиздец. Главное — начать использовать, а там, глядишь, и дофамина получишь, когда твоя программа не тупит, а шустро всё порешает.