zoukankan      html  css  js  c++  java
  • python实现异步调用函数执行

    在实现异步调用之前我们先进行什么是同步调用和异步调用

    • 同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行
    • 异步:是和同步相对的,异步是指在处理调用这个事务的之后,不会等待这个事务的处理结果,直接处理第二个事务去了,通过状态、通知、回调来通知调用者处理结果

    分析一下,下面的例子: 
    定义了一个装饰器 async 和 A 、B 两个function 函数
    A 里面sleep 10s , 然后打印 a function 字符串 
    B 里面直接打印 b function 字符串 
    我们顺序调用两个功能: 
    A() 
    B( ) 

    由于函数A在睡的状态,我们又不希望程序被阻塞在函数A的睡的状态,所以我们采用异步执行,即在函数A睡的状态,让其他的任务执行

    from threading import Thread
    from time import sleep
    
    
    def async(f):
        def wrapper(*args, **kwargs):
            thr = Thread(target=f, args=args, kwargs=kwargs)
            thr.start()
    
        return wrapper
    
    
    @async
    def A():
        sleep(10)
        print("函数A睡了十秒钟。。。。。。")
        print("a function")
    
    
    def B():
        print("b function")
    
    
    A()
    B()

    执行结果:

    #b function
    #函数A睡了十秒钟。。。。。。
    #a function
  • 相关阅读:
    python 正则表达式
    Python 集合
    Python 类的使用
    Python 分支、循环语句
    Python 基础之字典(dict)的用法
    Python 之字符串常用操作
    python tuple元组操作
    Python list的常用操作
    appium 二次切换webview后无法找到页面元素
    Locust API 文档
  • 原文地址:https://www.cnblogs.com/sui776265233/p/10950001.html
Copyright © 2011-2022 走看看