Rah*_*hul 5 python asynchronous python-asyncio
我试图在python中解释一个异步编程的例子,但我失败了.这是我的代码.
import asyncio
import time
async def asyncfoo(t):
time.sleep(t)
print("asyncFoo")
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncfoo(10)) # I think Here is the problem
print("Foo")
loop.close()
Run Code Online (Sandbox Code Playgroud)
我的期望是我会看到:
Foo
asyncFoo
Run Code Online (Sandbox Code Playgroud)
等待10秒才asyncFoo显示出来.
但相反,我没有得到任何10秒,然后他们都显示.
我做错了什么,怎么解释呢?
Udi*_*Udi 11
run_until_complete将阻止,直到asyncfoo完成.相反,你需要在循环中执行两个协同程序.使用asyncio.gather轻松启动多个协程用run_until_complete.
这是一个例子:
import asyncio
async def async_foo():
print("asyncFoo1")
await asyncio.sleep(3)
print("asyncFoo2")
async def async_bar():
print("asyncBar1")
await asyncio.sleep(1)
print("asyncBar2")
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(async_foo(), async_bar()))
loop.close()
Run Code Online (Sandbox Code Playgroud)