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
  • 相关阅读:
    递归
    排序算法的稳定性与复杂度总结
    二分查找
    希尔排序
    快速排序
    归并排序
    插入排序
    选择排序
    冒泡排序
    i2c_smbs 函数
  • 原文地址:https://www.cnblogs.com/sui776265233/p/10950001.html
Copyright © 2011-2022 走看看