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)

  

 

posted @ 2021-11-24 23:45  远洪  阅读(1209)  评论(0编辑  收藏  举报