1 import asyncio
2 import time
3
4 # 定义异步函数 say_after
5 async def say_after(delay, what):
6 # 等待指定的延迟时间
7 await asyncio.sleep(delay)
8 # 返回一个格式化的字符串,包含消息和延迟时间
9 return f"{what}-{delay}"
10
11 # 定义主函数 main
12 async def main():
13 # 创建异步任务 task1 和 task2
14 task1 = asyncio.create_task(say_after(1, 'hello'))
15 task2 = asyncio.create_task(say_after(2, 'world'))
16
17 # 打印开始时间
18 print(f"started at {time.strftime('%Y-%m-%d %H:%M:%S')}")
19
20 # 使用 asyncio.gather 并发执行 task1 和 task2
21 # gather 函数会等待所有任务完成并返回它们的返回值
22 ret = await asyncio.gather(task1, task2)
23
24 # 打印返回值列表
25 print(ret)
26
27 # 打印结束时间
28 print(f"finished at {time.strftime('%Y-%m-%d %H:%M:%S')}")