线程池(thread pool)是一种线程使用模式。
线程过多会带来调度开销,进而影响缓存局部性和整体性能。
而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。
这避免了在处理短时间任务时创建与销毁线程的代价。
from concurrent.futures import ThreadPoolExecutor from concurrent import futures
使用with来应用多线程
with ThreadPoolExecutor(max_workers = 30) as execotor:
exector.submit()方法获取到一个Future对象
然后我们可以对其调用
done()是否完成
add_one_callback()设置回调函数
result()获取结果
as_completed()等
示例
future = exector.submit(download,id)
res= future .result