您不会看到什么特别的东西,因为您的代码中没有太多异步工作。但是,主要区别在于它time.sleep(5)
是阻塞的,并且asyncio.sleep(5)
是非阻塞的。
当time.sleep(5)
被调用时,它会阻止脚本的整个执行,它会被搁置,只是冻结,无所事事。但是,当您调用时await asyncio.sleep(5)
,它将在等待语句完成执行时要求事件循环运行其他内容。
这是一个改进的示例。
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)
并没有阻止脚本的执行。
希望能帮助到你 :)