我在python的异步框架FastAPI中实现了一个异步函数
该函数看起来像:
async def func2(num):
time.sleep(3)
return num
async def func1():
text = await func2(5)
print(text)
print('inside func1')
async def my_async_func():
print('start')
await func1()
print('finish')
在这里,当我执行时,my_async_func
我期望 asyn 行为和值被打印为
start
finish
inside func1
5
但它同步打印为
start
5
inside func1
finish
协程如何异步处理并发操作和实现?
这样做asyncio.create_task
,(注:你不能确保打印5
后inside func1
通过打印的顺序。)
试试下面的代码:
import asyncio
import time
async def func2(num):
time.sleep(3)
return num
async def func1():
text = await func2(5)
print(text)
print('inside func1')
async def my_async_func():
print('start')
asyncio.create_task(func1())
print('finish')
asyncio.run(my_async_func())
结果:
start
finish
5
inside func1
还要注意 sleep 会让你的线程休眠。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句