国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 东方市| 科尔| 通州区| 乌拉特中旗| 申扎县| 宁武县| 乐昌市| 防城港市| 浏阳市| 闻喜县| 淄博市| 丰城市| 德钦县| 嘉禾县| 辛集市| 新竹市| 遂川县| 黄骅市| 邢台市| 福州市| 太仆寺旗| 辛集市| 容城县| 宾阳县| 安西县| 平陆县| 金坛市| 石门县| 惠水县| 吉木乃县| 海口市| 怀化市| 井研县| 社旗县| 津市市| 壶关县| 安丘市| 齐齐哈尔市| 无为县| 句容市| 新蔡县|