什么是协程
协程(co-routine,又称微线程、纤程)是一种多方协同的工作方式。协程不是进程或线程,其执行过程类似于 Python 函数调用,Python 的 asyncio 模块实现的异步IO编程框架中,协程是对使用 async 关键字定义的异步函数的调用。当前执行者在某个时刻主动让出(yield)控制流,并记住自身当前的状态,以便在控制流返回时能从上次让出的位置恢复(resume)执行
# coding:utf-8
import asyncio
import time
async def say_after(delay, what):
await asyncio.sleep(delay) #阻塞 delay 指定的秒数
print(what)
async def main():
#asyncio.create_task() 函数用来并发运行作为 asyncio 任务 的多个协程
# task1 = asyncio.create_task(say_after(5, 'hello'))
# task2 = asyncio.create_task(say_after(5, 'world'))
print(f"started at {time.strftime('%X')}")
# await task1
# await task2
await say_after(5, 'hello')
await say_after(5, 'world')
print(f"finished at {time.strftime('%X')}")
asyncio.run(main())
started at 10:02:52
hello
world
finished at 10:03:02