首页 > 编程语言 > 详细

线程池

时间:2020-09-07 16:57:02      阅读:74      评论:0      收藏:0      [点我收藏+]
‘‘‘
concurrent.futures 模块提供了高度封装的异步调用接口
ThreadPoolExecutor :线程池,提供异步调用
ProcessPoolExecutor:进程池,提供异步调用。
基本方法:
submit(fn,*args,**kargs) 异步提交任务

map(func,*iterables,timeout=None,chunksize= 1)
取代for循环submit的操作

shutdown(wait = True)
相当于线程池的pool.close() + pool.join()操作
wait=True 等待池内所有任务执行完毕回收资源后才继续
wait=False 立即返回,并不会等待池内的任务执行完毕
但不管wait参数为何值,整个程序都会等到所有任务执行完毕
submit和map 必须在shutdown之前

result (timeout =None)
取得结果

add_done_callback(fn)
回调函数

‘‘‘
import time
from concurrent.futures import ThreadPoolExecutor
def func(n):
time.sleep(2)
print(n)
return n*n

t= ThreadPoolExecutor(max_workers=5) #默认不要超过CUP个数的5倍
t_lst=[]
for i in range(20):
t1 =t.submit(func,i)
t_lst.append(t1)
t.shutdown()
print(‘主线程‘)
for i in t_lst:
print(‘***‘,i.result())

线程池

原文:https://www.cnblogs.com/liu1983/p/13627491.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!