示例1
import asyncio
import time
async def fun1():
print('fun1开始')
await asyncio.sleep(2)
print('fun1结束')
print(time.time())
async def fun2():
print('fun2开始')
await asyncio.sleep(5)
print('fun2结束')
print(time.time())
async def fun3():
print('fun3开始')
time.sleep(8)
print('fun3结束')
async def main():
# 添加并执行,await只是等待其执行完毕,防止程序过早结束。也可以等待其return值
task1 = asyncio.create_task(fun1())
task2 = asyncio.create_task(fun2())
# await task2等待协程task2执行结束,main才结束(程序结束)
await task2
if __name__ == '__main__':
print(time.time())
asyncio.run(main())
示例2 task列表
import asyncio
import time
async def fun1():
print('fun1开始')
await asyncio.sleep(2)
print('fun1结束')
async def fun2():
print('fun2开始')
await asyncio.sleep(5)
print('fun2结束')
async def fun3():
print('fun3开始')
await asyncio.sleep(8)
print('fun3结束')
async def main():
print("main开始")
task_list = [
asyncio.create_task(fun1()),
asyncio.create_task(fun2()),
asyncio.create_task(fun3()),
]
print("main结束")
# 等待多个task结束
done,pending = await asyncio.wait(task_list)
print(done)
print()
print(pending)
if __name__ == '__main__':
asyncio.run(main())