asyncio.Task.all_tasks()是方法,只返回当前循环中所有挂起和运行的给定任务类型(默认为所有任务类型)。而asyncio.all_tasks()是一个协程函数,返回所有当前任务(挂起,正在运行,以及已完成的)的集合。
代码示例:
import asyncio
async def coro():
await asyncio.sleep(1)
async def main():
task = asyncio.create_task(coro())
# run the coro
await asyncio.sleep(0.5)
all_tasks_1 = {t._coro for t in asyncio.Task.all_tasks()}
print(f"all_tasks_1: {all_tasks_1}")
# print set() since the coro is running, not finished yet
all_tasks_2 = await asyncio.all_tasks()
print(f"all_tasks_2: {all_tasks_2}")
# print ALL tasks, explicit base loop + implicit default loop
# set() if there are no other running tasks besides main()
asyncio.run(main())