zoukankan      html  css  js  c++  java
  • 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)

      

    博客里大都是转载的内容,其目的主要用户知识的组织和管理。
  • 相关阅读:
    HMM 学习一
    matlab buffer的使用
    JDK环境变量配置及Tomcat安装服务
    Js参数RSA加密传输,jsencrypt.js的使用
    Dapper基本增删改查
    Dapper事务操作
    Ubuntu知识记录
    InstallShield 覆盖安装
    Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
    Sql Server导出表结构Excel
  • 原文地址:https://www.cnblogs.com/liyuanhong/p/15600908.html
Copyright © 2011-2022 走看看