Чем ключевое слово python await отличается от Node js await?
В node js ключевые слова await
блокируют выполнение следующей строки до тех пор, пока текущая строка не будет полностью разрешена или ожидается. Но в python продолжает выполнение t2 ( из приведенного ниже примера ) до завершения t1.
import asyncio
import time
async def heavy():
print("start computing")
await asyncio.sleep(3)
print("end computing")
async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(6)
return x + y
async def print_sum(x, y):
result = await compute(x, y)
print("%s + %s = %s" % (x, y, result))
async def main():
print(f"Starting at {time.strftime('%X')}")
t1= asyncio.create_task(print_sum(10,20))
t2= asyncio.create_task(heavy())
await t1
await t2
print(f"Ending at {time.strftime('%X')}")
asyncio.run(main())
Даже если t2 вызывается после t1, t2 завершается до t1.
Мои вопросы:
- Что такое точное использование ключевого слова
await
в python? Я искал много ресурсов, пока не выяснил об этом. - Что понимает система, когда она сталкивается с ключевым словом
await
? - Как
main()
метод в приведенном выше коде работает? Не стесняйтесь давать построчное объяснение
Пожалуйста, предоставьте подробное объяснение по вышеуказанным Вопросам. , .