相关疑难解决方法(0)

计算事件循环中的活动任务

如何找出事件循环中有多少活动任务?在文档中我只找到asyncio.Task.all_tasks()但它是简单的增量计数器:

import asyncio


async def coro():
    await asyncio.sleep(1)


async def main():
    tasks = []
    print('Tasks count: ', len(asyncio.Task.all_tasks()))
    for idx in range(3):
        task = asyncio.ensure_future(coro())
        tasks.append(task)
        print('Tasks count: ', len(asyncio.Task.all_tasks()))
    await asyncio.gather(*tasks)
    print('Tasks count: ', len(asyncio.Task.all_tasks()))


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Run Code Online (Sandbox Code Playgroud)

输出:

Tasks count:  1
Tasks count:  2
Tasks count:  3
Tasks count:  4
Tasks count:  4
Run Code Online (Sandbox Code Playgroud)

预期产量:

Tasks count:  1
Tasks count:  2
Tasks count:  3
Tasks count:  4
Tasks count:  1
Run Code Online (Sandbox Code Playgroud)

python-3.x python-asyncio

7
推荐指数
2
解决办法
4274
查看次数

标签 统计

python-3.x ×1

python-asyncio ×1