欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python線程池ThreadPoolExecutor,傳單個參數(shù)和多個參數(shù)方式

 更新時間:2023年03月14日 10:19:32   作者:東貝鳥  
這篇文章主要介紹了python線程池ThreadPoolExecutor,傳單個參數(shù)和多個參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

python線程池ThreadPoolExecutor,傳單個參數(shù)和多個參數(shù)

這是線程池傳單個參數(shù)的

from concurrent.futures import ThreadPoolExecutor,as_completed
def test(a):
? ? ? ? print(a)

qq = {"a":"1","b":"2","c":"3"}
with ThreadPoolExecutor() as pool:
? ? for j ,k in qq.items():
? ? ? ? res = pool.submit(test,j)
? ? ? ? kk = res.result()

下面是傳多個參數(shù)的

from concurrent.futures import ThreadPoolExecutor,as_completed
def test(a,b):
? ? ? ? print(a,b)

qq = {"a":"1","b":"2","c":"3"}
with ThreadPoolExecutor() as pool:
? ? for j ,k in qq.items():
? ? ? ? res = pool.submit(lambda cxp:test(*cxp),(j ,k))
? ? ? ? last= res.result())

主要就是 pool.submit(lambda cxp:test(*cxp),(j ,k))

這行代碼要拆開來看

首先就是匿名函數(shù) :lambda cxp:test(*cxp) 這是第一步

這個的意思是:傳cxp參數(shù),傳到test里

第二步就是 submit(lambda cxp:test(cxp),(j ,k))

sumbit的方法是要傳兩個參數(shù)的,第一個是一個函數(shù),第二個是這個函數(shù)的參數(shù)

剛剛匿名函數(shù)就是第一個參數(shù),然后(j,k)是第二參數(shù),這個參數(shù)是要傳給函數(shù)的,于是 (j,k)就給了cxp

python線程池傳入多個參數(shù) ThreadPoolExecutor.submit 多參數(shù)支持

from concurrent.futures import ThreadPoolExecutor,as_completed
??
def doFileParse(filepath,segment,wordslist):
? ? ? print(filepath)
? ? ? print(segment)
??
#調(diào)用方法
#實質(zhì)就是通過lambda表達式過渡。傳入的參數(shù)是一個,但是通過lambda表達多后拆散為多個傳入。這是很巧妙的方法,實際 就是 *p 這個表達式。
args =[filepath,thu1,Words]
?
newTask=executor.submit(lambda p: doFileParse(*p),args)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論