python asyncio 异步执行任务例子
import asyncio
import time
class Robot(object):
def __init__(self):
pass
# 异步任务
async def play(self, kind, delay):
await asyncio.sleep(delay)
print(f"我在玩 {kind}")
async def play_all(self):
print(f"started at {time.strftime('%X')}")
tasks = []
# 创建异步任务
task1 = asyncio.create_task(self.play('足球', 3))
tasks.append(task1)
task2 = asyncio.create_task(self.play('篮球', 2))
tasks.append(task2)
task3 = asyncio.create_task(self.play('排球', 1))
tasks.append(task3)
# 等待所有任务完成,并收集结果
await asyncio.gather(*tasks)
print(f"finished at {time.strftime('%X')}")
robot = Robot()
# 执行异步事件
asyncio.run(robot.play_all())
输出结果
started at 23:08:10
我在玩 排球
我在玩 篮球
我在玩 足球
finished at 23:08:13