总结一下自己学习python线程池的用法
from concurrent.futures import ThreadPoolExecutor
import time
#需要使用线程的函数
def func(name):
print(name,'start')
time.sleep(3)
print(name,'end')
if __name__ == '__main__':
#记录时间用
start_time=time.time()
#开启线程池,其中3代表线程个数
with ThreadPoolExecutor(3) as t:
#需要调用50次函数,也可以换参数传递
for i in range(50):
t.submit(func,name=i)
#括号中第一个是调用的函数名称,不加括号,后面是函数的参数,可以传递多个
#输出一下好事
print(time.time()-start_time)
1、首先要导入包
from concurrent.futures import ThreadPoolExecutor
2、然后主代码块
with ThreadPoolExecutor(3) as t:
for i in range(50):
t.submit(func,name=i)
第一行3代表线程数,第二行50代表调用函数的次数,第三行代表开启线程,括号中第一个函数名称,第二开始传递参数
优点:线程可以加快50次函数运行速度,开的越多,感觉50函数运行完的越快
缺点:目前不会调用函数返回值的传递,需要进一步学习