(我用的是python3.7)import asyncio
result = 0
async def sub1():
global result
print('[*] sub1() start')
for i in range(1, 10000000):
result += i
print('[*] sub1() end')
async def sub2():
global result
print('[*] sub2() start')
for i in range(10000000, 20000000):
result += i
print('[*] sub2() end')
async def main():
await asyncio.gather(
asyncio.create_task(sub1()),
asyncio.create_task(sub2()),
)
asyncio.run(main())
当我执行上面的代码时,结果是
^{pr2}$
您知道,sub2()是在sub1()完成后启动的。在
它似乎不能并行工作。在
我想把控制权交给sub2(),直到sub1()完成。在
也许我必须在某处插入await,但我不知道重点在哪里。在
问题
如何像并行使用for循环一样执行这两个函数?在
谢谢。在