📅  最后修改于: 2023-12-03 14:52:31.411000             🧑  作者: Mango
ThreadPoolExecutor
是Python3中concurrent.futures
模块中的类,它允许开发者使用线程池来执行并发任务,可以显著提高代码的执行效率。
要使用ThreadPoolExecutor
类,需要遵循以下步骤:
concurrent.futures
模块中ThreadPoolExecutor
类:from concurrent.futures import ThreadPoolExecutor
ThreadPoolExecutor
实例:with ThreadPoolExecutor(max_workers = num_threads) as executor:
其中max_workers
参数是最大线程数,也就是线程池中可以使用的最大线程数量。
future = executor.submit(function, arg1, arg2, ...)
其中function
是要执行的函数名称,arg1, arg2, ...
是函数接受的参数。
result = future.result()
from concurrent.futures import ThreadPoolExecutor
def power(x, n):
return x ** n
if __name__ == '__main__':
with ThreadPoolExecutor(max_workers=4) as executor:
future1 = executor.submit(power, 2, 3)
future2 = executor.submit(power, 3, 3)
future3 = executor.submit(power, 4, 3)
future4 = executor.submit(power, 5, 3)
print(future1.result()) # 8
print(future2.result()) # 27
print(future3.result()) # 64
print(future4.result()) # 125
在此示例中,我们创建了一个含有四个线程的线程池,然后向线程池中提交了四个任务。最后我们输出每个任务的结果,完成power()
函数中的输入值的立方计算。
注意:在创建线程池时,您可以设置最大线程池的大小。通常,最大线程池大小应该与CPU的核心数成比例。不过从代码方面考虑,建议不要设置过多的线程,因为过多的线程会导致锁竞争和上下文切换,从而降低执行效率。