您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

异步函数应用

正常函数

正常函数,一次执行到底, 中 间 不 能 中 断 中间不能中断

def norm_func():
	print("this is normal function.")
	print("can't interrupt until complete...")

异步函数

碰到IO操作,可以暂时挂起,去执行其他的 异 步 函 数 异步函数 ,待IO操作完成后,立即再次切换回来。

await,声明程序的挂起,去执行其他的异步程序,只能跟异步程序/__await__属性的对象

import asyncio
import requests

async def get():
    print("start to request url...")
    r = requests.get("https://www.baidu.com/",headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"})
    #模拟IO
    await asyncio.sleep(10)

    return r

async def func1():
    print("func1 is running...")

    #异步,等待IO完成
    #在IO期间,去执行其他的异步函数
    #一旦IO完成,立即切换回来
    r = await get()

    print("func1 continue running...")
    print("response content:",r.status_code)

async def func2():
    print("func2 is running...")

    #等待IO 完成
    await  asyncio.sleep(5)

    print("func2 continue running...")

if __name__ == "__main__":
    #创建循环
    loop = asyncio.get_event_loop()

    #创建任务列表
    task = [asyncio.ensure_future(i()) for i in (func1,func2)]

    #执行任务,指导完成
    loop.run_until_complete(asyncio.wait(task))

    #关闭循环
    loop.close()


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进