【发布时间】:2022-10-23 05:40:17
【问题描述】:
我有一个输出从 1 到 10 的数字的代码:
from asyncio import get_event_loop, gather, sleep
async def main(k):
print(k)
await sleep(1)
if __name__ == '__main__':
list_objects = list()
count_group = 3
for i in range(1, 11):
list_objects.append(i)
list_func = [main(x) for x in list_objects]
loop = get_event_loop()
loop.run_until_complete(gather(
*list_func
))
输出:
1 2 3 4 5 6 7 8 9 10
值得注意的是,在上面的示例中,一次同时启动了 10 个函数。如何修复代码以使并发启动的功能数量主要的()等于计数组?也就是说,立即输出应该是123, 然后456, 然后789最后10.
【问题讨论】:
-
您最好的选择可能是在吃完批次后致电
gather,或者引入另一个监督每批次并收集它们的协程。
标签: python python-asyncio