Вы не видите ничего особенного, потому что в вашем коде нет ничего особенного асинхронного. Однако основное отличие состоит в том, что time.sleep(5)
является блокирующим, а asyncio.sleep(5)
не является блокирующим.
Когда вызывается time.sleep(5)
, он блокирует все выполнение скрипта и будет приостановлен, просто заморожен, ничего не делая. Но когда вы вызываете await asyncio.sleep(5)
, он попросит цикл обработки событий выполнить что-то еще, пока ваш оператор await завершит свое выполнение.
Вот улучшенный пример.
import asyncio
async def hello():
print('Hello ...')
await asyncio.sleep(5)
print('... World!')
async def main():
await asyncio.gather(hello(), hello())
asyncio.run(main())
Будет выводить:
~$ python3.7 async.py
Hello ...
Hello ...
... World!
... World!
Вы можете видеть, что await asyncio.sleep(5)
не блокирует выполнение скрипта.
Надеюсь, это поможет:)