我有一个输出从 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 个函数。如何修复代码以使并发启动的函数main()的数量等于count_group?也就是说,立即输出应该是123,然后是456,然后是789,最后是10。