在實現異步調用之前我們先進行什么是同步調用和異步調用
-
同步:是指完成事務的邏輯,先執行第一個事務,如果阻塞了,會一直等待,直到這個事務完成,再執行第二個事務,順序執行
- 異步:是和同步相對的,異步是指在處理調用這個事務的之后,不會等待這個事務的處理結果,直接處理第二個事務去了,通過狀態、通知、回調來通知調用者處理結果
分析一下,下面的例子:
定義了一個裝飾器 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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
