# 关于上面整个流程的描述:
# 1.创建事件循环loop,
# 2.loop.run_until_complete(b())运行到b()运行完
# 3.b()中是一个无限循环先是cor = a(1)
# 4.res = loop.create_task(cor) 通过create_task将a(1)加入到队列中
# 5.执行a(1),先打印--> 1,然后要睡0.5s,cpu不会在这里等待
# 6.cpu跳转到res = loop.create_task(cor)后执行,这里又有一个等0.1秒,cpu又挂起,但是另一个事件是等待0.5s
# 所以等待完0.1s之后,cpu执行了最后的print(res),这时候b()循环第一轮循环运行到末尾了,流程执行到末尾了
# 但是a(1)还没有运行完,仍然在事件循环中等待
# 7.第一轮循环结束,cpu就开始第二轮循环,然后就是做a(2)添加到事件循环中,打印了--> 2,然后等待0.5s,再跳转回b中等待0.1s
# 然后打印print(res),就这样一直到第五个循环,打印了--> 5之后,cpu执行完b中的sleep 0.1s之后,第一轮循环中a(1)0.5s终于结束
# 然后cpu跳转到a(1)中去打印<-- 1,这时候第一个a(1)的操作才真正执行完,然后如此往复。
# 8.这就是这段代码异步,协程的流程。
# 9.如果把print(res)改成print(await res),这样也是一个协程异步,但是从结果来看就不会看到异步的效果
# 原因在于:res就是执行a(t), await res会等待res结束也就是a(t)结束,所以这里异步来异步去
# 最后的效果还是看上去同步,和同步的结果是一样的,相当于用异步来实现了一个同步,神经病啊!