python async异步编程(一)
可参见python官方文档:https://docs.python.org/zh-cn/3.7/library/asyncio-eventloop.html
一、事件循环
事件循环:是python异步编程中重要的一个环节;可以理解未就是一个死循环,这个死循环会去检测并执行某些代码。
例如:
# 伪代码 列表 = [任务1,任务二,任务三] while True: 可执行的任务列表,已完成的任务列表 = 去任务列表检测所有任务,将“可执行”和“已完成”的任务返回 for 就绪任务 in 就绪任务列表: 执行就绪恩物 for 已完成的任务 in 已完成的任务列表: 在任务列表中移除已完成的任务 如果任务列表中所有任务完成,则终止循环
python代码如下:
import asyncio # 生成一个事件循环 loop = asyncio.get_event_loop() # 将任务放到任务列表去执行 loop.run_until_complate(tasks)
二、携程函数与携程对象
携程函数:python3.5之后使用 async def 函数名,定义的函数就叫携程函数
携程对象:执行携程函数 函数名(),得到的就是携程对象
async def func(): print("哈哈哈哈哈") # 调用携程函数不会执行该函数内部代码 result = func()
如何让携程函数得到执行:
如果要运行携程对象,必须将携程对象交给事件循环来处理
import asyncio
async def func(): print("哈哈哈") result = func()
loop = asyncio.get_event_loop() loop.run_until_complate(result)
# python3.7之后有更简单的方法
asyncio.run(result)
博客里大都是转载的内容,其目的主要用户知识的组织和管理。