[英]await outside async in async/await
在异步之前使用多处理进程,以测试哪个更快我正在尝试使用异步运行代码,但它给了我一个错误消息: 'await'outside async 。
我的代码:
import asyncio
import time
async def sleep():
print(f'Time: {time.time() - start:.2f}')
await asyncio.sleep(1)
async def sum(name, numbers):
def sum_(numbers):
total = 0
print(f'Task {name}: Computing {total}+{number}')
await sleep()
total += number
print(f'Task {name}: Sum = {total}\n')
for number in numbers:
sum_(numbers)
start = time.time()
loop = asyncio.get_event_loop()
tasks = [
loop.create_task(sum("A", [1, 2])),
loop.create_task(sum("B", [1, 2, 3])),
]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
end = time.time()
print(f'Time: {end-start:.2f} sec')
请注意:这只是一个代码示例,在原始代码中我无法按照以下方式执行操作:
for number in numbers:
sum_(numbers)
await sleep()
按照此评论的建议测试 asyncio
sum_
是一个单独的 function,就 Python 而言。 如果你想在 function 中await
,它需要是async
。 而如果你想调用一个async
function,你需要await
它。
async def sum(name, numbers):
async def sum_(numbers): # <-- This function needs to be async
total = 0
print(f'Task {name}: Computing {total}+{number}')
await sleep()
total += number
print(f'Task {name}: Sum = {total}\n')
for number in numbers:
await sum_(numbers) # <-- And we need to await it here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.