国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python線程池模塊ThreadPoolExecutor用法分析

2020-02-16 00:22:19
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了Python線程池模塊ThreadPoolExecutor用法。分享給大家供大家參考,具體如下:

python3內(nèi)置的有Threadingpool和ThreadPoolExecutor模塊,兩個都可以做線程池,當然ThreadPoolExecutor會更好用一些,而且也有ProcessPoolExecutor進程池模塊,使用方法基本一致。

首先導入模塊

from concurrent.futures import ThreadPoolExecutor

使用方法很簡單,最常用的可能就是map方法和submit+as_completed

注意,一定要使用with,而不要使用for,如果你一定要用for,那么一定要手動進行executor.shutdown,而你使用了with方法的話,再with方法內(nèi)部已經(jīng)實現(xiàn)了wait(),在使用完畢之后可以自行關閉線程池,減少資源浪費。

使用map

with ThreadPoolExecutor(max_workers=2) as executor:  result = executor.map(map_fun, itr_arg)  '''map_fun:你傳入的要執(zhí)行的map函數(shù)    itr_arg:一個可迭代的參數(shù),可以是列表字典等可迭代的對象    基本上和python的map函數(shù)一樣    注意result并不是你map_fun返回的結果,而是一個生成器,如果要從中去結果,你可以使用列表生成式或者其他你想使用的方法  '''  for res in result:    print(res) #這個res就是你map_fun返回的結果,你可以在這里做進一步處理

使用submit+as_completed也可以很靈活

with ThreadPoolExecutor(max_workers=2) as executor:  future= executor.submit(fun, args)  '''  在這里你可以使用for循環(huán)來做,返回的是一個future對象  future_list=[]  for i in range(max_workers):    future= executor.submit(fun, args[i])    future_list.append(future)  '''  for res in ac_completed(futrue_list): #這個futrure_list是你future對象的列表    print(res.result())        #循環(huán)遍歷時用.result()來取返回值

兩種方式差不多,都可以很好的實現(xiàn)多線程任務,切記一定使用with!

更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫程序設計入門教程》及《Python常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹巴县| 甘谷县| 玉环县| 镇康县| 祁门县| 安吉县| 塔河县| 临猗县| 西林县| 大田县| 福建省| 吴川市| 手游| 耿马| 安吉县| 克山县| 通化市| 吴川市| 河北省| 宣汉县| 平舆县| 濮阳县| 勃利县| 合江县| 长子县| 松溪县| 来凤县| 蕲春县| 清镇市| 闻喜县| 灌云县| 遵义市| 田阳县| 曲阜市| 大洼县| 武陟县| 水城县| 旅游| 香河县| 上林县| 梅河口市|