这篇文章主要介绍了Python线程池模块ThreadPoolExecutor用法,结合实例形式分析了Python线程池模块ThreadPoolExecutor的导入与基本使用方法,需要的朋友可以参考下
文实例讲述了Python线程池模块ThreadPoolExecutor用法。分享给大家供大家参考,具体如下:
python3内置的有Threadingpool和ThreadPoolExecutor模块,两个都可以做线程池,当然ThreadPoolExecutor会更好用一些,而且也有ProcessPoolExecutor进程池模块,使用方法基本一致。
首先导入模块
from concurrent.futures import ThreadPoolExecutor
使用方法很简单,最常用的可能就是map方法和submit+as_completed
注意,一定要使用with,而不要使用for,如果你一定要用for,那么一定要手动进行executor.shutdown
,而你使用了with方法的话,再with方法内部已经实现了wait()
,在使用完毕之后可以自行关闭线程池,减少资源浪费。
使用map
with ThreadPoolExecutor(max_workers=2) as executor:
result = executor.map(map_fun, itr_arg)
'''map_fun:你传入的要执行的map函数
itr_arg:一个可迭代的参数,可以是列表字典等可迭代的对象
基本上和python的map函数一样
注意result并不是你map_fun返回的结果,而是一个生成器,如果要从中去