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)文章
python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實例
這篇文章主要介紹了python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
可用于監(jiān)控 mysql Master Slave 狀態(tài)的python代碼
用于監(jiān)控MySQL Master Slave 狀態(tài)的python代碼,有需要的朋友可以參考下2013-02-02
VScode查看python f.write()的文件亂碼問題及解決方法
這篇文章主要介紹了VScode查看python f.write()的文件亂碼問題及解決方法,本文通過圖文并茂的形式給大家分享解決方法,需要的朋友可以參考下2023-02-02
我在七夕佳節(jié)用Python制作的表白神器,程序員也應(yīng)該擁有愛情!建議收藏
這篇文章主要介紹了我在七夕佳節(jié)用Python制作的表白神器,建議收藏,程序員也該擁有愛情,感興趣的小伙伴快來看看吧2021-08-08

