python如何實現異步調用函數執(zhí)行
在實現異步調用之前我們先進行什么是同步調用和異步調用
- 同步:是指完成事務的邏輯,先執(zhí)行第一個事務,如果阻塞了,會一直等待,直到這個事務完成,再執(zhí)行第二個事務,順序執(zhí)行
- 異步:是和同步相對的,異步是指在處理調用這個事務的之后,不會等待這個事務的處理結果,直接處理第二個事務去了,通過狀態(tài)、通知、回調來通知調用者處理結果
分析一下,下面的例子:
定義了一個裝飾器 async 和 A 、B 兩個function 函數
A 里面sleep 10s , 然后打印 a function 字符串
B 里面直接打印 b function 字符串
我們順序調用兩個功能:
A()
B( )
由于函數A在睡的狀態(tài),我們又不希望程序被阻塞在函數A的睡的狀態(tài),所以我們采用異步執(zhí)行,即在函數A睡的狀態(tài),讓其他的任務執(zhí)行
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()
執(zhí)行結果:
#b function #函數A睡了十秒鐘。。。。。。 #a function
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python 解決logging功能使用過程中遇到的一個問題
這篇文章主要介紹了Python 解決logging功能使用過程中遇到的一個問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python sort、sorted高級排序技巧分享(key的使用)
這篇文章主要介紹了python sort、sorted高級排序技巧(key的使用),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
Python創(chuàng)建對稱矩陣的方法示例【基于numpy模塊】
這篇文章主要介紹了Python創(chuàng)建對稱矩陣的方法,結合實例形式分析了Python基于numpy模塊實現矩陣運算的相關操作技巧,需要的朋友可以參考下2017-10-10
python print()函數的end參數和sep參數的用法說明
這篇文章主要介紹了python print()函數的end參數和sep參數的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

