• 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)

      

    博客里大都是转载的内容,其目的主要用户知识的组织和管理。
  • 相关阅读:
    Saltstack cmd.run 多项命令
    salt state.sls windows 传输文件
    mysql 时区更改;5.7 弱口令
    nginx 端口转发
    nohup 后台执行
    检测 nginx 关闭切换keepalived
    Centos 7 安装 dotnet 环境
    unison 双向镜像同步
    samba 配置参数详解
    数据结构与算法面试题80道(15)
  • 原文地址:https://www.cnblogs.com/liyuanhong/p/15600908.html
Copyright © 2020-2023  润新知