python如何實(shí)現(xiàn)異步調(diào)用函數(shù)執(zhí)行
在實(shí)現(xiàn)異步調(diào)用之前我們先進(jìn)行什么是同步調(diào)用和異步調(diào)用
- 同步:是指完成事務(wù)的邏輯,先執(zhí)行第一個(gè)事務(wù),如果阻塞了,會(huì)一直等待,直到這個(gè)事務(wù)完成,再執(zhí)行第二個(gè)事務(wù),順序執(zhí)行
- 異步:是和同步相對(duì)的,異步是指在處理調(diào)用這個(gè)事務(wù)的之后,不會(huì)等待這個(gè)事務(wù)的處理結(jié)果,直接處理第二個(gè)事務(wù)去了,通過狀態(tài)、通知、回調(diào)來通知調(diào)用者處理結(jié)果
分析一下,下面的例子:
定義了一個(gè)裝飾器 async 和 A 、B 兩個(gè)function 函數(shù)
A 里面sleep 10s , 然后打印 a function 字符串
B 里面直接打印 b function 字符串
我們順序調(diào)用兩個(gè)功能:
A()
B( )
由于函數(shù)A在睡的狀態(tài),我們又不希望程序被阻塞在函數(shù)A的睡的狀態(tài),所以我們采用異步執(zhí)行,即在函數(shù)A睡的狀態(tài),讓其他的任務(wù)執(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("函數(shù)A睡了十秒鐘。。。。。。") print("a function") def B(): print("b function") A() B()
執(zhí)行結(jié)果:
#b function #函數(shù)A睡了十秒鐘。。。。。。 #a function
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python使用eval函數(shù)執(zhí)行動(dòng)態(tài)標(biāo)表達(dá)式過程詳解
- 解決python調(diào)用自己文件函數(shù)/執(zhí)行函數(shù)找不到包問題
- python 輪詢執(zhí)行某函數(shù)的2種方式
- Python利用PyExecJS庫(kù)執(zhí)行JS函數(shù)的案例分析
- Python裝飾器限制函數(shù)運(yùn)行時(shí)間超時(shí)則退出執(zhí)行
- python 限制函數(shù)執(zhí)行時(shí)間,自己實(shí)現(xiàn)timeout的實(shí)例
- Python使用修飾器執(zhí)行函數(shù)的參數(shù)檢查功能示例
- python函數(shù)中return后的語(yǔ)句一定不會(huì)執(zhí)行嗎?
- 如何在Python函數(shù)執(zhí)行前后增加額外的行為
- python 執(zhí)行函數(shù)的九種方法
相關(guān)文章
Python?plt.title()函數(shù)實(shí)例詳解
plt.title() 是 matplotlib 庫(kù)中用于設(shè)置圖形標(biāo)題的函數(shù),這篇文章主要介紹了Python?plt.title()函數(shù),需要的朋友可以參考下2023-03-03Python 解決logging功能使用過程中遇到的一個(gè)問題
這篇文章主要介紹了Python 解決logging功能使用過程中遇到的一個(gè)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04python sort、sorted高級(jí)排序技巧分享(key的使用)
這篇文章主要介紹了python sort、sorted高級(jí)排序技巧(key的使用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Python創(chuàng)建對(duì)稱矩陣的方法示例【基于numpy模塊】
這篇文章主要介紹了Python創(chuàng)建對(duì)稱矩陣的方法,結(jié)合實(shí)例形式分析了Python基于numpy模塊實(shí)現(xiàn)矩陣運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10python print()函數(shù)的end參數(shù)和sep參數(shù)的用法說明
這篇文章主要介紹了python print()函數(shù)的end參數(shù)和sep參數(shù)的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05利用python計(jì)算時(shí)間差(返回天數(shù))
這篇文章主要給大家介紹了關(guān)于如何利用python計(jì)算時(shí)間差(返回天數(shù))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09