python异步编程(二)事件循环

事件循环

  • 事件循环是异步的实现方式
  • 事件循环可以理解为一个循环,该循环的作用是检测并执行代码
  • 将所有需要执行的任务放在一个列表中,并给出状态

伪代码

任务列表=[ 任务1,任务2,任务3 ]
while True:
	可执行的任务列表,已完成的任务列表=去任务列表中检查所有的任务,将’可执行"和'已完成 的任务返回
	for 就绪任务 in 可执行的任务列表:
		执行已就绪的任务
	for 已完成的任务 in 已完成的任务列表:
		在任务列表中移除 已完成的任务
	如果 任务列表 中的任务都已完成,则终止循环

基本应用

协程函数:定义函数时,如果在函数前面加上 async 关键字,则为协程函数

协程对象:执行 协程函数() 得到协程对象

async def func():  # 协程函数
    print('######')

result = func()  # 协程对象,func函数的内部代码不会执行

如果想要执行协程函数内部代码,必须要将协程对象交给事件循环处理

import asyncio


async def func():  # 协程函数
    print('######')

result = func()  # 协程对象,func函数的内部代码不会执行

# loop = asyncio.get_event_loop()
# loop.run_until_complete(result)  # 3.5-3.6 版本写法

asyncio.run(result)  # 3.7 及之后版本可这样写
posted @ 2021-10-08 11:27  寡淡的白开水  阅读(591)  评论(0)    收藏  举报